mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-26 14:37:44 +00:00
Merge branch 'develop' of https://github.com/SapphireMordred/Sapphire into develop
This commit is contained in:
commit
ab66162291
708 changed files with 34680 additions and 22369 deletions
|
@ -21,8 +21,9 @@ 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 ..
|
||||
- cd bin
|
||||
- copy "C:\Program Files\MySQL\MySQL Server 5.7\lib\libmysql.dll" libmysql.dll
|
||||
- sh sql_import.sh
|
||||
|
|
35
.gitignore
vendored
35
.gitignore
vendored
|
@ -1,12 +1,31 @@
|
|||
# Output Directory
|
||||
[Bb]in/
|
||||
# Output Directory
|
||||
[Bb]in/*.exe
|
||||
[Bb]in/*.pdb
|
||||
[Bb]in/api
|
||||
[Bb]in/world
|
||||
[Bb]in/lobby
|
||||
[Bb]in/dbm
|
||||
src/tools/[Bb]in/*.exe
|
||||
src/tools/[Bb]in/*.pdb
|
||||
src/tools/[Bb]in/discovery_parser
|
||||
src/tools/[Bb]in/event_object_parser
|
||||
src/tools/[Bb]in/exd_common_gen
|
||||
src/tools/[Bb]in/exd_struct_test
|
||||
src/tools/[Bb]in/mob_parse
|
||||
src/tools/[Bb]in/pcb_reader2
|
||||
src/tools/[Bb]in/quest_parse
|
||||
src/tools/[Bb]in/exd_struct_gen
|
||||
|
||||
# Script Directory
|
||||
# TODO: Sperate script directory from bin
|
||||
!bin/scripts/**/*
|
||||
|
||||
# decompiled scripts
|
||||
src/tools/bin/generated/*
|
||||
|
||||
# Build Directory
|
||||
build/
|
||||
cmake-build-*/
|
||||
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
@ -64,10 +83,6 @@ CTestTestfile.cmake
|
|||
# Binary Template
|
||||
*.bt
|
||||
|
||||
# Boost
|
||||
/lib/boost_1_63_0
|
||||
src/libraries/external/boost_*
|
||||
|
||||
# EasyHook
|
||||
!EasyHook32.dll
|
||||
!EasyHook32Svc.exe
|
||||
|
@ -113,7 +128,7 @@ src/common/Version\.cpp
|
|||
.mtime_cache
|
||||
|
||||
# generated script loader files
|
||||
src/servers/Scripts/*/ScriptLoader.cpp
|
||||
**/ScriptLoader.cpp
|
||||
|
||||
# cotire generated files/folders
|
||||
cotire/
|
||||
|
@ -124,4 +139,8 @@ cotire/
|
|||
|
||||
# doxygen output folder
|
||||
doxygen/generated/
|
||||
doxygen/*.tmp
|
||||
doxygen/*.tmp
|
||||
|
||||
# ignore config directory contents except the default file
|
||||
config/*.ini
|
||||
!config/config.ini.default
|
||||
|
|
|
@ -13,9 +13,7 @@ matrix:
|
|||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
- llvm-toolchain-trusty-6.0
|
||||
packages:
|
||||
- clang-6.0
|
||||
- g++-7
|
||||
env:
|
||||
- MATRIX_EVAL="CC=gcc-7 && CXX=g++-7"
|
||||
|
@ -29,8 +27,7 @@ cache:
|
|||
# Setup build matrix and dependencies
|
||||
before_install:
|
||||
- eval "${MATRIX_EVAL}"
|
||||
- gem install --no-ri --no-rdoc mtime_cache
|
||||
- sudo add-apt-repository -y ppa:rexut/recoil
|
||||
- gem install mtime_cache --no-document
|
||||
- sudo apt-get update
|
||||
- sudo apt-get install -y libmysqlclient-dev
|
||||
|
||||
|
@ -41,5 +38,5 @@ script:
|
|||
- mkdir -p build
|
||||
- cd build
|
||||
- cmake .. && make -j 3
|
||||
- cd ..
|
||||
- cd bin
|
||||
- bash sql_import.sh
|
||||
|
|
|
@ -2,19 +2,27 @@ cmake_policy( SET CMP0014 NEW )
|
|||
cmake_minimum_required( VERSION 3.0.2 )
|
||||
project( Sapphire )
|
||||
|
||||
set( CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin )
|
||||
set( CMAKE_MODULE_PATH
|
||||
${CMAKE_MODULE_PATH}
|
||||
${CMAKE_SOURCE_DIR}/cmake )
|
||||
|
||||
set( EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin )
|
||||
set( LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin )
|
||||
set( EXECUTABLE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin )
|
||||
#####################################
|
||||
# Copy needed files to build-folder #
|
||||
#####################################
|
||||
add_custom_target( copy_runtime_files ALL
|
||||
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 )
|
||||
|
||||
set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake )
|
||||
|
||||
##########################################################################
|
||||
# Dependencies and compiler settings
|
||||
include( "cmake/mysql.cmake" )
|
||||
######################################
|
||||
# Dependencies and compiler settings #
|
||||
######################################
|
||||
include( "cmake/paths.cmake" )
|
||||
#include( "cmake/mysql.cmake" )
|
||||
include( "cmake/compiler.cmake" )
|
||||
include( "cmake/cotire.cmake" )
|
||||
|
||||
##############################
|
||||
# Git #
|
||||
##############################
|
||||
|
@ -25,25 +33,29 @@ 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" )
|
||||
|
||||
##############################
|
||||
# Main Sapphire Components #
|
||||
##############################
|
||||
add_subdirectory( "src/common" )
|
||||
add_subdirectory( "src/api" )
|
||||
add_subdirectory( "src/lobby" )
|
||||
add_subdirectory( "src/world" )
|
||||
add_subdirectory( "src/scripts" )
|
||||
add_subdirectory( "src/dbm" )
|
||||
|
||||
add_subdirectory( "src/servers" )
|
||||
#add_subdirectory( "src/dbm" )
|
||||
|
||||
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" )
|
||||
##############################
|
||||
# Tools #
|
||||
##############################
|
||||
add_subdirectory( "src/tools" )
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
</p>
|
||||
|
||||
[](https://discord.gg/xxcdCER)
|
||||
[](https://travis-ci.org/SapphireMordred/Sapphire)
|
||||
[](https://travis-ci.org/SapphireServer/Sapphire)
|
||||
[](https://ci.appveyor.com/project/SapphireMordred/Sapphire)
|
||||
|
||||
|
||||
|
|
|
@ -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 = 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/zone.ini
|
BIN
bin/libmysql.dll
BIN
bin/libmysql.dll
Binary file not shown.
|
@ -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,53 +115,24 @@ 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."
|
||||
)
|
||||
|
||||
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
|
||||
|
@ -223,49 +167,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
|
||||
|
|
|
@ -1,31 +1,34 @@
|
|||
|
||||
if(UNIX)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
|
||||
# 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")
|
||||
add_definitions( -D_WIN32_WINNT=0x601 )
|
||||
add_definitions( -D_CRT_SECURE_NO_WARNINGS )
|
||||
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_FLAGS "${CMAKE_CXX_FLAGS} /wd4834" )
|
||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17" )
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set( CMAKE_CXX_STANDARD 17 )
|
||||
set( CMAKE_CXX_STANDARD_REQUIRED ON )
|
||||
set( CMAKE_CXX_EXTENSIONS ON )
|
||||
|
||||
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")
|
||||
|
||||
# enable building with multiple processes
|
||||
message(STATUS "Enabling Build with Multiple Processes..")
|
||||
add_definitions(/MP)
|
||||
message( STATUS "Enabling Incremental Linking.." )
|
||||
set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /INCREMENTAL" )
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
|
|
@ -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()
|
14
cmake/paths.cmake
Normal file
14
cmake/paths.cmake
Normal file
|
@ -0,0 +1,14 @@
|
|||
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()
|
||||
|
||||
# Create log folder
|
||||
file( MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin/log )
|
3
config/api.ini.default
Normal file
3
config/api.ini.default
Normal file
|
@ -0,0 +1,3 @@
|
|||
[Network]
|
||||
ListenIp = 0.0.0.0
|
||||
ListenPort = 80
|
25
config/global.ini.default
Normal file
25
config/global.ini.default
Normal file
|
@ -0,0 +1,25 @@
|
|||
[Database]
|
||||
Host = 127.0.0.1
|
||||
Port = 3306
|
||||
Database = sapphire
|
||||
Username = sapphire
|
||||
Password =
|
||||
SyncThreads = 2
|
||||
AsyncThreads = 2
|
||||
|
||||
[General]
|
||||
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
|
||||
ZoneHost = 127.0.0.1
|
||||
ZonePort = 54992
|
||||
|
||||
LobbyHost = 127.0.0.1
|
||||
LobbyPort = 54994
|
||||
|
||||
RestHost = 127.0.0.1
|
||||
RestPort = 80
|
7
config/lobby.ini.default
Normal file
7
config/lobby.ini.default
Normal file
|
@ -0,0 +1,7 @@
|
|||
[Lobby]
|
||||
AllowNoSessionConnect = false
|
||||
WorldName = Sapphire
|
||||
|
||||
[Network]
|
||||
ListenIp = 0.0.0.0
|
||||
ListenPort = 54994
|
20
config/world.ini.default
Normal file
20
config/world.ini.default
Normal file
|
@ -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}
|
6
deps/datReader/CMakeLists.txt
vendored
6
deps/datReader/CMakeLists.txt
vendored
|
@ -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 )
|
||||
|
|
106
deps/datReader/Exd.cpp
vendored
106
deps/datReader/Exd.cpp
vendored
|
@ -2,7 +2,7 @@
|
|||
|
||||
#include "bparse.h"
|
||||
#include "stream.h"
|
||||
|
||||
#include <fstream>
|
||||
#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
|
||||
|
@ -81,6 +81,105 @@ namespace xiv
|
|||
{
|
||||
}
|
||||
|
||||
const std::vector<Field> 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 ] );
|
||||
|
||||
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.
|
||||
// 6 is because we have uint32_t/uint16_t at the start of each record
|
||||
iss.seekg( offset + 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
|
||||
{
|
||||
throw std::runtime_error( "String not implemented for variant 2!" );
|
||||
//auto string_offset = extract<uint32_t>( 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<bool>( iss, "bool" ) );
|
||||
break;
|
||||
|
||||
case DataType::int8:
|
||||
fields.emplace_back( extract<int8_t>( iss, "int8_t" ) );
|
||||
break;
|
||||
|
||||
case DataType::uint8:
|
||||
fields.emplace_back( extract<uint8_t>( iss, "uint8_t" ) );
|
||||
break;
|
||||
|
||||
case DataType::int16:
|
||||
fields.emplace_back( extract<int16_t>( iss, "int16_t", false ) );
|
||||
break;
|
||||
|
||||
case DataType::uint16:
|
||||
fields.emplace_back( extract<uint16_t>( iss, "uint16_t", false ) );
|
||||
break;
|
||||
|
||||
case DataType::int32:
|
||||
fields.emplace_back( extract<int32_t>( iss, "int32_t", false ) );
|
||||
break;
|
||||
|
||||
case DataType::uint32:
|
||||
fields.emplace_back( extract<uint32_t>( iss, "uint32_t", false ) );
|
||||
break;
|
||||
|
||||
case DataType::float32:
|
||||
fields.emplace_back( extract<float>( iss, "float", false ) );
|
||||
break;
|
||||
|
||||
case DataType::uint64:
|
||||
fields.emplace_back( extract<uint64_t>( 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<Field> Exd::get_row( uint32_t id )
|
||||
{
|
||||
|
||||
|
@ -98,6 +197,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() )
|
||||
{
|
||||
|
|
2
deps/datReader/Exd.h
vendored
2
deps/datReader/Exd.h
vendored
|
@ -47,6 +47,8 @@ public:
|
|||
// Get a row by its id
|
||||
const std::vector<Field> get_row(uint32_t id);
|
||||
|
||||
// Get a row by its id and sub-row
|
||||
const std::vector<Field> get_row(uint32_t id, uint32_t subRow);
|
||||
// Get all rows
|
||||
const std::map<uint32_t, std::vector<Field>>& get_rows();
|
||||
|
||||
|
|
3
deps/datReader/Exh.h
vendored
3
deps/datReader/Exh.h
vendored
|
@ -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
|
||||
|
|
12
deps/mysqlConnector/CMakeLists.txt
vendored
12
deps/mysqlConnector/CMakeLists.txt
vendored
|
@ -9,18 +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} )
|
||||
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)
|
||||
|
|
2
deps/mysqlConnector/Statement.cpp
vendored
2
deps/mysqlConnector/Statement.cpp
vendored
|
@ -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() );
|
||||
}
|
||||
|
|
6
deps/watchdog/Watchdog.h
vendored
6
deps/watchdog/Watchdog.h
vendored
|
@ -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<std::mutex> lock( mMutex );
|
||||
auto end = mFileWatchers.end();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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;
|
|
@ -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 */;
|
|
@ -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
|
|
@ -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 */;
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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 */;
|
|
@ -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;
|
|
@ -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
|
File diff suppressed because it is too large
Load diff
|
@ -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;
|
|
@ -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
|
|
@ -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!
|
|
@ -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
|
10142
sql/schema/inserts.sql
Normal file
10142
sql/schema/inserts.sql
Normal file
File diff suppressed because one or more lines are too long
586
sql/schema/schema.sql
Normal file
586
sql/schema/schema.sql
Normal file
|
@ -0,0 +1,586 @@
|
|||
|
||||
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 `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,
|
||||
`gimmickId` int(11) DEFAULT 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,
|
||||
`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) 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',
|
||||
`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) DEFAULT '0',
|
||||
`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) DEFAULT '0',
|
||||
`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) NOT 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,
|
||||
`UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY(`HouseId`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE `housepartsitem` (
|
||||
`HouseId` bigint(20) UNSIGNED NOT 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 NOT NULL,
|
||||
`HouseId` bigint(20) UNSIGNED NOT NULL,
|
||||
`storageId` bigint(20) NOT NULL,
|
||||
`type` 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,
|
||||
`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,
|
||||
`SlotId` INT(10) UNSIGNED NOT NULL,
|
||||
`ItemId` INT(20) NOT NULL,
|
||||
PRIMARY KEY (`LandIdent`, `ContainerId`, `SlotId`),
|
||||
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,
|
||||
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;
|
||||
|
||||
CREATE TABLE `landplaceditems` (
|
||||
`ItemId` INT(20) UNSIGNED NOT NULL,
|
||||
`PosX` FLOAT NOT NULL,
|
||||
`PosY` FLOAT NOT NULL,
|
||||
`PosZ` FLOAT NOT NULL,
|
||||
`Rotation` FLOAT NOT NULL,
|
||||
PRIMARY KEY (`ItemId`)
|
||||
)
|
||||
COLLATE='latin1_swedish_ci' ENGINE=InnoDB;
|
||||
|
|
@ -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
|
|
@ -1,54 +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 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;
|
||||
|
||||
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`);
|
File diff suppressed because it is too large
Load diff
|
@ -1,226 +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);
|
||||
/*!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 */;
|
|
@ -1,14 +1,5 @@
|
|||
#!/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
|
||||
./dbm --mode initialize --user root --database sapphire --sfile sql/schema/schema.sql --ifile sql/schema/inserts.sql
|
||||
./dbm --mode liquidate --user root --database sapphire --force
|
||||
cd ..
|
||||
|
|
10
src/api/CMakeLists.txt
Normal file
10
src/api/CMakeLists.txt
Normal file
|
@ -0,0 +1,10 @@
|
|||
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*" )
|
||||
|
||||
add_executable( api ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES} )
|
||||
|
||||
target_link_libraries( api common )
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <memory>
|
||||
|
||||
namespace Core
|
||||
namespace Sapphire
|
||||
{
|
||||
class Cell;
|
||||
class Zone;
|
|
@ -1,6 +1,6 @@
|
|||
#include "LoginSession.h"
|
||||
|
||||
namespace Core {
|
||||
namespace Sapphire {
|
||||
LoginSession::LoginSession( void )
|
||||
{
|
||||
//setSocket(NULL);
|
|
@ -7,7 +7,7 @@
|
|||
#include <string>
|
||||
#include <string.h>
|
||||
|
||||
namespace Core
|
||||
namespace Sapphire
|
||||
{
|
||||
|
||||
class LoginSession
|
|
@ -6,9 +6,9 @@
|
|||
|
||||
#include <Database/DatabaseDef.h>
|
||||
|
||||
extern Core::Data::ExdDataGenerated g_exdDataGen;
|
||||
extern Sapphire::Data::ExdDataGenerated g_exdDataGen;
|
||||
|
||||
namespace Core {
|
||||
namespace Sapphire {
|
||||
|
||||
using namespace Common;
|
||||
|
||||
|
@ -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_territoryTypeId = res->getUInt16( "TerritoryType" );
|
||||
|
||||
res.reset();
|
||||
|
||||
|
@ -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;
|
||||
|
@ -245,19 +245,11 @@ 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 )
|
||||
|
||||
// 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( 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 );
|
||||
|
@ -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;
|
||||
|
@ -409,6 +409,7 @@ void PlayerMinimal::insertDbGlobalItem( uint32_t itemId, uint64_t uniqueId ) con
|
|||
stmtItemGlobal->setInt( 1, m_id );
|
||||
stmtItemGlobal->setInt64( 2, uniqueId );
|
||||
stmtItemGlobal->setInt( 3, itemId );
|
||||
stmtItemGlobal->setInt( 4, 1 ); // stack of 1
|
||||
g_charaDb.directExecute( stmtItemGlobal );
|
||||
}
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
namespace Core
|
||||
namespace Sapphire
|
||||
{
|
||||
|
||||
class PlayerMinimal
|
||||
|
@ -131,7 +131,7 @@ namespace Core
|
|||
|
||||
uint32_t getZoneId() const
|
||||
{
|
||||
return m_zoneId;
|
||||
return m_territoryTypeId;
|
||||
}
|
||||
|
||||
uint32_t getTribe() const
|
||||
|
@ -185,7 +185,7 @@ namespace Core
|
|||
|
||||
uint8_t m_tribe;
|
||||
|
||||
uint16_t m_zoneId;
|
||||
uint16_t m_territoryTypeId;
|
||||
|
||||
uint64_t m_modelMainWeapon;
|
||||
uint64_t m_modelSubWeapon;
|
|
@ -10,17 +10,17 @@
|
|||
|
||||
#include <Database/DatabaseDef.h>
|
||||
|
||||
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 );
|
||||
|
@ -206,20 +206,20 @@ void Core::Network::SapphireAPI::deleteCharacter( std::string name, uint32_t acc
|
|||
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< 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 );
|
||||
|
|
@ -7,12 +7,12 @@
|
|||
#include <memory>
|
||||
#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 );
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
#include "Session.h"
|
||||
|
||||
namespace Core {
|
||||
namespace Sapphire {
|
||||
Session::Session()
|
||||
{
|
||||
|
|
@ -5,7 +5,7 @@
|
|||
#include <string>
|
||||
#include <string.h>
|
||||
|
||||
namespace Core
|
||||
namespace Sapphire
|
||||
{
|
||||
|
||||
class Session
|
|
@ -27,20 +27,19 @@
|
|||
#include <algorithm>
|
||||
|
||||
#include <Framework.h>
|
||||
#include <Logging/Logger.h>
|
||||
|
||||
#include "Forwards.h"
|
||||
#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::Db::DbWorkerPool< Sapphire::Db::ZoneDbConnection > g_charaDb;
|
||||
Sapphire::Data::ExdDataGenerated g_exdDataGen;
|
||||
Sapphire::Network::SapphireAPI g_sapphireAPI;
|
||||
|
||||
namespace fs = std::experimental::filesystem;
|
||||
|
||||
using namespace std;
|
||||
using namespace Sapphire;
|
||||
|
||||
using HttpServer = SimpleWeb::Server< SimpleWeb::HTTP >;
|
||||
using HttpClient = SimpleWeb::Client< SimpleWeb::HTTP >;
|
||||
|
@ -50,32 +49,50 @@ void default_resource_send( const HttpServer& server, const shared_ptr< HttpServ
|
|||
const shared_ptr< ifstream >& ifs );
|
||||
|
||||
|
||||
auto m_pConfig = std::make_shared< Core::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< Core::ConfigMgr >();
|
||||
auto pConfig = std::make_shared< Sapphire::ConfigMgr >();
|
||||
|
||||
if( !m_pConfig->loadConfig( configPath ) )
|
||||
throw "Error loading config ";
|
||||
Logger::info( "Loading config " + configPath );
|
||||
|
||||
bool failedLoad = false;
|
||||
|
||||
// load global cfg first
|
||||
if( !pConfig->loadGlobalConfig( m_config.global ) )
|
||||
{
|
||||
Logger::fatal( "Error loading config global.ini" );
|
||||
failedLoad = true;
|
||||
}
|
||||
|
||||
if( !pConfig->loadConfig( configPath ) )
|
||||
{
|
||||
Logger::fatal( "Error loading config {0}", configPath );
|
||||
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." );
|
||||
throw "Error loading config";
|
||||
}
|
||||
|
||||
// setup api config
|
||||
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 )
|
||||
{
|
||||
g_log.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[] )
|
||||
{
|
||||
g_log.info( "Loading config " + configPath );
|
||||
|
||||
if( !m_pConfig->loadConfig( configPath ) )
|
||||
{
|
||||
g_log.fatal( "Error loading config " + configPath );
|
||||
return false;
|
||||
}
|
||||
reloadConfig();
|
||||
|
||||
std::vector< std::string > args( argv + 1, argv + argc );
|
||||
for( size_t i = 0; i + 1 < args.size(); i += 2 )
|
||||
|
@ -85,87 +102,40 @@ 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
|
||||
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( ... )
|
||||
{
|
||||
g_log.error( "Error parsing argument: " + arg + " " + "value: " + val + "\n" );
|
||||
g_log.error( "Usage: <arg> <val> \n" );
|
||||
Logger::error( "Error parsing argument: {0} value: {1}\n", arg, val );
|
||||
Logger::error( "Usage: <arg> <val> \n" );
|
||||
}
|
||||
}
|
||||
|
||||
g_log.info( "Setting up generated EXD data" );
|
||||
if( !g_exdDataGen.init( m_pConfig->getValue< std::string >( "GlobalParameters", "DataPath", "" ) ) )
|
||||
Logger::info( "Setting up generated EXD data" );
|
||||
auto dataPath = m_config.global.general.dataPath;
|
||||
if( !g_exdDataGen.init( dataPath ) )
|
||||
{
|
||||
g_log.fatal( "Error setting up generated EXD data " );
|
||||
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;
|
||||
}
|
||||
|
||||
Core::Db::DbLoader loader;
|
||||
Sapphire::Db::DbLoader loader;
|
||||
|
||||
Core::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 );
|
||||
|
||||
loader.addDb( g_charaDb, info );
|
||||
loader.addDb( g_charaDb, m_config.global.database );
|
||||
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 = m_config.network.listenPort;
|
||||
server.config.address = m_config.network.listenIP;
|
||||
|
||||
g_log.info( "Database: Connected to " + info.host + ":" + std::to_string( info.port ) );
|
||||
Logger::info( "Database: Connected to {0}:{1}", m_config.global.database.host, m_config.global.database.port );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -241,7 +211,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;
|
||||
|
@ -265,9 +235,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_config.global.network.lobbyHost +
|
||||
"\", \"frontierHost\":\"" +
|
||||
m_pConfig->getValue< std::string >( "GlobalNetwork", "RestHost" ) + "\"}";
|
||||
m_config.global.network.restHost + "\"}";
|
||||
*response << buildHttpResponse( 200, json_string, JSON );
|
||||
}
|
||||
else
|
||||
|
@ -276,7 +246,7 @@ void createAccount( shared_ptr< HttpServer::Response > response, shared_ptr< Htt
|
|||
catch( exception& e )
|
||||
{
|
||||
*response << buildHttpResponse( 500 );
|
||||
g_log.error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -298,9 +268,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_config.global.network.lobbyHost +
|
||||
"\", \"frontierHost\":\"" +
|
||||
m_pConfig->getValue< std::string >( "GlobalNetwork", "RestHost" ) + "\"}";
|
||||
m_config.global.network.restHost + "\"}";
|
||||
*response << buildHttpResponse( 200, json_string, JSON );
|
||||
}
|
||||
else
|
||||
|
@ -310,7 +280,7 @@ void login( shared_ptr< HttpServer::Response > response, shared_ptr< HttpServer:
|
|||
catch( exception& e )
|
||||
{
|
||||
*response << buildHttpResponse( 500 );
|
||||
g_log.error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -330,7 +300,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_config.global.general.serverSecret != secret )
|
||||
{
|
||||
std::string json_string = "{\"result\":\"invalid_secret\"}";
|
||||
*response << buildHttpResponse( 403, json_string, JSON );
|
||||
|
@ -345,7 +315,7 @@ void deleteCharacter( shared_ptr< HttpServer::Response > response, shared_ptr< H
|
|||
catch( exception& e )
|
||||
{
|
||||
*response << buildHttpResponse( 500 );
|
||||
g_log.error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -362,7 +332,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();
|
||||
|
||||
|
@ -370,15 +340,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_config.global.general.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_config.global.general.defaultGMRank );
|
||||
|
||||
std::string json_string = "{\"result\":\"" + std::to_string( charId ) + "\"}";
|
||||
*response << buildHttpResponse( 200, json_string, JSON );
|
||||
|
@ -393,7 +363,7 @@ void createCharacter( shared_ptr< HttpServer::Response > response, shared_ptr< H
|
|||
catch( exception& e )
|
||||
{
|
||||
*response << buildHttpResponse( 500 );
|
||||
g_log.error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -411,7 +381,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_config.global.general.serverSecret != secret )
|
||||
{
|
||||
std::string json_string = "{\"result\":\"invalid_secret\"}";
|
||||
*response << buildHttpResponse( 403, json_string, JSON );
|
||||
|
@ -426,7 +396,7 @@ void insertSession( shared_ptr< HttpServer::Response > response, shared_ptr< Htt
|
|||
catch( exception& e )
|
||||
{
|
||||
*response << buildHttpResponse( 500 );
|
||||
g_log.error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -443,7 +413,7 @@ void checkNameTaken( shared_ptr< HttpServer::Response > response, shared_ptr< Ht
|
|||
|
||||
// reloadConfig();
|
||||
|
||||
if( m_pConfig->getValue< std::string >( "GlobalParameters", "ServerSecret" ) != secret )
|
||||
if( m_config.global.general.serverSecret != secret )
|
||||
{
|
||||
std::string json_string = "{\"result\":\"invalid_secret\"}";
|
||||
*response << buildHttpResponse( 403, json_string, JSON );
|
||||
|
@ -461,7 +431,7 @@ void checkNameTaken( shared_ptr< HttpServer::Response > response, shared_ptr< Ht
|
|||
catch( exception& e )
|
||||
{
|
||||
*response << buildHttpResponse( 500 );
|
||||
g_log.error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -480,7 +450,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_config.global.general.serverSecret != secret )
|
||||
{
|
||||
std::string json_string = "{\"result\":\"invalid_secret\"}";
|
||||
*response << buildHttpResponse( 403, json_string, JSON );
|
||||
|
@ -503,7 +473,7 @@ void checkSession( shared_ptr< HttpServer::Response > response, shared_ptr< Http
|
|||
catch( exception& e )
|
||||
{
|
||||
*response << buildHttpResponse( 500 );
|
||||
g_log.error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -519,7 +489,7 @@ void getNextCharId( shared_ptr< HttpServer::Response > response, shared_ptr< Htt
|
|||
|
||||
// reloadConfig();
|
||||
|
||||
if( m_pConfig->getValue< std::string >( "GlobalParameters", "ServerSecret" ) != secret )
|
||||
if( m_config.global.general.serverSecret != secret )
|
||||
{
|
||||
std::string json_string = "{\"result\":\"invalid_secret\"}";
|
||||
*response << buildHttpResponse( 403, json_string, JSON );
|
||||
|
@ -533,7 +503,7 @@ void getNextCharId( shared_ptr< HttpServer::Response > response, shared_ptr< Htt
|
|||
catch( exception& e )
|
||||
{
|
||||
*response << buildHttpResponse( 500 );
|
||||
g_log.error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -550,7 +520,7 @@ void getNextContentId( shared_ptr< HttpServer::Response > response, shared_ptr<
|
|||
|
||||
// reloadConfig();
|
||||
|
||||
if( m_pConfig->getValue< std::string >( "GlobalParameters", "ServerSecret" ) != secret )
|
||||
if( m_config.global.general.serverSecret != secret )
|
||||
{
|
||||
std::string json_string = "{\"result\":\"invalid_secret\"}";
|
||||
*response << buildHttpResponse( 403, json_string, JSON );
|
||||
|
@ -564,7 +534,7 @@ void getNextContentId( shared_ptr< HttpServer::Response > response, shared_ptr<
|
|||
catch( exception& e )
|
||||
{
|
||||
*response << buildHttpResponse( 500 );
|
||||
g_log.error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -585,7 +555,7 @@ void getCharacterList( shared_ptr< HttpServer::Response > response, shared_ptr<
|
|||
|
||||
if( result != -1 )
|
||||
{
|
||||
if( m_pConfig->getValue< std::string >( "GlobalParameters", "ServerSecret" ) != secret )
|
||||
if( m_config.global.general.serverSecret != secret )
|
||||
{
|
||||
std::string json_string = "{\"result\":\"invalid_secret\"}";
|
||||
*response << buildHttpResponse( 403, json_string, JSON );
|
||||
|
@ -620,7 +590,7 @@ void getCharacterList( shared_ptr< HttpServer::Response > response, shared_ptr<
|
|||
catch( exception& e )
|
||||
{
|
||||
*response << buildHttpResponse( 500 );
|
||||
g_log.error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -655,7 +625,7 @@ void get_init( shared_ptr< HttpServer::Response > response, shared_ptr< HttpServ
|
|||
catch( exception& e )
|
||||
{
|
||||
*response << buildHttpResponse( 500 );
|
||||
g_log.error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -689,7 +659,7 @@ void get_headline_all( shared_ptr< HttpServer::Response > response, shared_ptr<
|
|||
catch( exception& e )
|
||||
{
|
||||
*response << buildHttpResponse( 500 );
|
||||
g_log.error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -732,16 +702,13 @@ 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 );
|
||||
g_log.setLogPath( "log/SapphireAPI" );
|
||||
g_log.init();
|
||||
Logger::init( "log/api" );
|
||||
|
||||
g_log.info( "===========================================================" );
|
||||
g_log.info( "Sapphire API Server " );
|
||||
g_log.info( "Version: 0.0.1" );
|
||||
g_log.info( "Compiled: " __DATE__ " " __TIME__ );
|
||||
g_log.info( "===========================================================" );
|
||||
Logger::info( "===========================================================" );
|
||||
Logger::info( "Sapphire API Server " );
|
||||
Logger::info( "Version: 0.0.1" );
|
||||
Logger::info( "Compiled: " __DATE__ " " __TIME__ );
|
||||
Logger::info( "===========================================================" );
|
||||
|
||||
if( !loadSettings( argc, argv ) )
|
||||
throw std::exception();
|
||||
|
@ -768,8 +735,7 @@ int main( int argc, char* argv[] )
|
|||
server.start();
|
||||
} );
|
||||
|
||||
g_log.info( "API server running on " + m_pConfig->getValue< std::string >( "RestNetwork", "ListenIp", "0.0.0.0" ) + ":" +
|
||||
m_pConfig->getValue< std::string >( "RestNetwork", "ListenPort", "80" ) );
|
||||
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 ) );
|
|
@ -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)
|
|
@ -13,32 +13,19 @@ 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} )
|
||||
|
||||
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/"
|
||||
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
|
||||
|
@ -46,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/" )
|
||||
|
||||
|
|
|
@ -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
|
||||
|
@ -26,6 +26,19 @@ namespace Core::Common
|
|||
float z;
|
||||
};
|
||||
|
||||
struct FFXIVARR_POSITION3_U16
|
||||
{
|
||||
uint16_t x;
|
||||
uint16_t y;
|
||||
uint16_t z;
|
||||
};
|
||||
|
||||
struct ActiveLand
|
||||
{
|
||||
uint8_t ward;
|
||||
uint8_t plot;
|
||||
};
|
||||
|
||||
enum InventoryOperation : uint8_t
|
||||
{
|
||||
Discard = 0x07,
|
||||
|
@ -214,7 +227,40 @@ namespace Core::Common
|
|||
FreeCompanyBag1 = 20001,
|
||||
FreeCompanyBag2 = 20002,
|
||||
FreeCompanyGil = 22000,
|
||||
FreeCompanyCrystal = 22001
|
||||
FreeCompanyCrystal = 22001,
|
||||
|
||||
// housing interior containers
|
||||
HousingInteriorAppearance = 25002,
|
||||
|
||||
// 50 in each container max, 400 slots max
|
||||
HousingInteriorPlacedItems1 = 25003,
|
||||
HousingInteriorPlacedItems2 = 25004,
|
||||
HousingInteriorPlacedItems3 = 25005,
|
||||
HousingInteriorPlacedItems4 = 25006,
|
||||
HousingInteriorPlacedItems5 = 25007,
|
||||
HousingInteriorPlacedItems6 = 25008,
|
||||
HousingInteriorPlacedItems7 = 25009,
|
||||
HousingInteriorPlacedItems8 = 25010,
|
||||
|
||||
// 50 max per container, 400 slots max
|
||||
// slot limit increased 'temporarily' for relocation for all estates
|
||||
// see: https://na.finalfantasyxiv.com/lodestone/topics/detail/d781e0d538428aef93b8bed4b50dd62c3c50fc74
|
||||
HousingInteriorStoreroom1 = 27001,
|
||||
HousingInteriorStoreroom2 = 27002,
|
||||
HousingInteriorStoreroom3 = 27003,
|
||||
HousingInteriorStoreroom4 = 27004,
|
||||
HousingInteriorStoreroom5 = 27005,
|
||||
HousingInteriorStoreroom6 = 27006,
|
||||
HousingInteriorStoreroom7 = 27007,
|
||||
HousingInteriorStoreroom8 = 27008,
|
||||
|
||||
|
||||
// housing exterior containers
|
||||
HousingExteriorAppearance = 25000,
|
||||
HousingExteriorPlacedItems = 25001,
|
||||
HousingExteriorStoreroom = 27000,
|
||||
|
||||
|
||||
};
|
||||
|
||||
enum ContainerType : uint16_t
|
||||
|
@ -392,6 +438,7 @@ namespace Core::Common
|
|||
c.UI8E = 0;
|
||||
c.UI8F = 0;
|
||||
c.padding = 0;
|
||||
c.padding1 = 0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -484,8 +531,7 @@ namespace Core::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,
|
||||
|
@ -499,8 +545,7 @@ namespace Core::Common
|
|||
LimitBreak = 8,
|
||||
};
|
||||
|
||||
enum ActionEffectType :
|
||||
uint8_t
|
||||
enum ActionEffectType : uint8_t
|
||||
{
|
||||
Nothing = 0,
|
||||
Miss = 1,
|
||||
|
@ -521,8 +566,7 @@ namespace Core::Common
|
|||
Mount = 38
|
||||
};
|
||||
|
||||
enum class ActionHitSeverityType :
|
||||
uint8_t
|
||||
enum class ActionHitSeverityType : uint8_t
|
||||
{
|
||||
NormalDamage = 0,
|
||||
CritHeal = 0,
|
||||
|
@ -532,16 +576,14 @@ namespace Core::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,
|
||||
|
@ -554,32 +596,28 @@ namespace Core::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
|
||||
|
@ -595,8 +633,7 @@ namespace Core::Common
|
|||
|
||||
};
|
||||
|
||||
enum struct FateStatus :
|
||||
uint8_t
|
||||
enum struct FateStatus : uint8_t
|
||||
{
|
||||
Active = 2,
|
||||
Inactive = 4,
|
||||
|
@ -604,8 +641,7 @@ namespace Core::Common
|
|||
Completed = 8,
|
||||
};
|
||||
|
||||
enum struct ChatType :
|
||||
uint16_t
|
||||
enum struct ChatType : uint16_t
|
||||
{
|
||||
LogKindError,
|
||||
ServerDebug,
|
||||
|
@ -731,6 +767,118 @@ namespace Core::Common
|
|||
MountSkill = 0xD,
|
||||
};
|
||||
|
||||
enum HouseExteriorSlot
|
||||
{
|
||||
HousePermit,
|
||||
ExteriorRoof,
|
||||
ExteriorWall,
|
||||
ExteriorWindow,
|
||||
ExteriorDoor,
|
||||
ExteriorRoofDecoration,
|
||||
ExteriorWallDecoration,
|
||||
ExteriorPlacard,
|
||||
ExteriorFence
|
||||
};
|
||||
|
||||
enum HouseInteriorSlot
|
||||
{
|
||||
InteriorWall,
|
||||
InteriorFloor,
|
||||
InteriorLight,
|
||||
InteriorWall_Attic,
|
||||
InteriorFloor_Attic,
|
||||
InteriorLight_Attic,
|
||||
InteriorWall_Basement,
|
||||
InteriorFloor_Basement,
|
||||
InteriorLight_Basement,
|
||||
InteriorLight_Mansion
|
||||
};
|
||||
|
||||
enum HouseTagSlot
|
||||
{
|
||||
MainTag,
|
||||
SubTag1,
|
||||
SubTag2
|
||||
};
|
||||
|
||||
enum LandFlagsSlot
|
||||
{
|
||||
FreeCompany,
|
||||
Private,
|
||||
Apartment,
|
||||
SharedHouse1,
|
||||
SharedHouse2
|
||||
};
|
||||
|
||||
enum class LandType : uint8_t
|
||||
{
|
||||
none = 0,
|
||||
FreeCompany = 1,
|
||||
Private = 2,
|
||||
};
|
||||
|
||||
enum LandFlags : uint32_t
|
||||
{
|
||||
EstateBuilt = 0x1,
|
||||
HasAetheryte = 0x2,
|
||||
UNKNOWN_1 = 0x4,
|
||||
UNKNOWN_2 = 0x8,
|
||||
UNKNOWN_3 = 0x10,
|
||||
};
|
||||
|
||||
struct LandIdent
|
||||
{
|
||||
int16_t landId; //00
|
||||
int16_t wardNum; //02
|
||||
int16_t territoryTypeId; //04
|
||||
int16_t worldId; //06
|
||||
};
|
||||
|
||||
struct LandFlagSet
|
||||
{
|
||||
LandIdent landIdent;
|
||||
uint32_t landFlags; //08
|
||||
uint32_t unkown1; //12
|
||||
};
|
||||
|
||||
struct HousingObject
|
||||
{
|
||||
uint32_t itemId;
|
||||
uint32_t padding; // was itemrotation + unknown/pad, looks unused now
|
||||
float rotation;
|
||||
Common::FFXIVARR_POSITION3 pos;
|
||||
};
|
||||
|
||||
enum HouseSize : uint8_t
|
||||
{
|
||||
Cottage,
|
||||
House,
|
||||
Mansion
|
||||
};
|
||||
|
||||
enum HouseStatus : uint8_t
|
||||
{
|
||||
none,
|
||||
ForSale,
|
||||
Sold,
|
||||
PrivateEstate,
|
||||
FreeCompanyEstate,
|
||||
};
|
||||
|
||||
enum HouseIconAdd : uint8_t
|
||||
{
|
||||
heart = 0x06
|
||||
};
|
||||
|
||||
enum WardlandFlags : uint8_t
|
||||
{
|
||||
IsEstateOwned = 1,
|
||||
IsPublicEstate = 2,
|
||||
HasEstateGreeting = 4,
|
||||
EstateFlagUnknown = 8,
|
||||
IsFreeCompanyEstate = 16,
|
||||
};
|
||||
|
||||
using PlayerStateFlagList = std::vector< PlayerStateFlag >;
|
||||
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
#include <stdint.h>
|
||||
|
||||
namespace Core {
|
||||
namespace Sapphire {
|
||||
namespace Common {
|
||||
|
||||
bool operator==( const ActionCategory& t, const uint8_t& g )
|
||||
|
|
|
@ -6,14 +6,14 @@
|
|||
/* 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 {
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
//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,35 +119,40 @@ 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 class GrandCompany :
|
||||
uint8_t
|
||||
enum class GrandCompany : uint8_t
|
||||
{
|
||||
None = 0,
|
||||
Maelstrom = 1,
|
||||
|
@ -159,9 +162,9 @@ enum class GrandCompany :
|
|||
|
||||
///////////////////////////////////////////////////////////
|
||||
//GuardianDeity.exd
|
||||
enum class GuardianDeity :
|
||||
uint8_t
|
||||
enum class GuardianDeity : uint8_t
|
||||
{
|
||||
None = 0,
|
||||
HalonetheFury = 1,
|
||||
MenphinatheLover = 2,
|
||||
ThaliaktheScholar = 3,
|
||||
|
@ -178,9 +181,9 @@ enum class GuardianDeity :
|
|||
|
||||
///////////////////////////////////////////////////////////
|
||||
//ItemUICategory.exd
|
||||
enum class ItemUICategory :
|
||||
uint8_t
|
||||
enum class ItemUICategory : uint8_t
|
||||
{
|
||||
None = 0,
|
||||
PugilistsArm = 1,
|
||||
GladiatorsArm = 2,
|
||||
MaraudersArm = 3,
|
||||
|
@ -281,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,
|
||||
|
@ -366,7 +374,7 @@ enum class ItemSearchCategory :
|
|||
DarkKnightsArms = 76,
|
||||
MachinistsArms = 77,
|
||||
AstrologiansArms = 78,
|
||||
AirshipComponents = 79,
|
||||
Airship_SubmersibleComponents = 79,
|
||||
OrchestrionComponents = 80,
|
||||
GardeningItems = 81,
|
||||
Paintings = 82,
|
||||
|
@ -377,8 +385,7 @@ enum class ItemSearchCategory :
|
|||
|
||||
///////////////////////////////////////////////////////////
|
||||
//OnlineStatus.exd
|
||||
enum class OnlineStatus :
|
||||
uint8_t
|
||||
enum class OnlineStatus : uint8_t
|
||||
{
|
||||
Producer = 1,
|
||||
GameMaster = 2,
|
||||
|
@ -431,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,
|
||||
|
@ -444,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,
|
||||
|
@ -463,8 +470,7 @@ enum class Tribe :
|
|||
|
||||
///////////////////////////////////////////////////////////
|
||||
//Town.exd
|
||||
enum class Town :
|
||||
uint8_t
|
||||
enum class Town : uint8_t
|
||||
{
|
||||
Nowheresville = 0,
|
||||
LimsaLominsa = 1,
|
||||
|
@ -476,8 +482,7 @@ enum class Town :
|
|||
|
||||
///////////////////////////////////////////////////////////
|
||||
//Weather.exd
|
||||
enum class Weather :
|
||||
uint8_t
|
||||
enum class Weather : uint8_t
|
||||
{
|
||||
None = 0,
|
||||
ClearSkies = 1,
|
||||
|
@ -545,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,
|
||||
|
@ -559,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,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
88
src/common/Config/ConfigDef.h
Normal file
88
src/common/Config/ConfigDef.h
Normal file
|
@ -0,0 +1,88 @@
|
|||
#ifndef SAPPHIRE_CONFIGDEF_H
|
||||
#define SAPPHIRE_CONFIGDEF_H
|
||||
|
||||
#include <Database/DbCommon.h>
|
||||
|
||||
namespace Sapphire::Common::Config
|
||||
{
|
||||
struct GlobalConfig
|
||||
{
|
||||
Sapphire::Db::ConnectionInfo database;
|
||||
|
||||
struct General
|
||||
{
|
||||
std::string serverSecret;
|
||||
std::string dataPath;
|
||||
uint16_t worldID;
|
||||
|
||||
uint8_t defaultGMRank;
|
||||
} general;
|
||||
|
||||
struct Network
|
||||
{
|
||||
std::string zoneHost;
|
||||
uint16_t zonePort;
|
||||
|
||||
std::string lobbyHost;
|
||||
uint16_t lobbyPort;
|
||||
|
||||
std::string restHost;
|
||||
uint16_t restPort;
|
||||
} network;
|
||||
};
|
||||
|
||||
|
||||
struct WorldConfig
|
||||
{
|
||||
GlobalConfig global;
|
||||
|
||||
struct Network
|
||||
{
|
||||
std::string listenIp;
|
||||
uint16_t listenPort;
|
||||
|
||||
uint16_t disconnectTimeout;
|
||||
} network;
|
||||
|
||||
struct Housing
|
||||
{
|
||||
std::string defaultEstateName;
|
||||
} housing;
|
||||
|
||||
struct Scripts
|
||||
{
|
||||
std::string path;
|
||||
std::string cachePath;
|
||||
bool hotSwap;
|
||||
} scripts;
|
||||
|
||||
std::string motd;
|
||||
};
|
||||
|
||||
struct LobbyConfig
|
||||
{
|
||||
GlobalConfig global;
|
||||
|
||||
struct Network
|
||||
{
|
||||
std::string listenIp;
|
||||
uint16_t listenPort;
|
||||
} network;
|
||||
|
||||
bool allowNoSessionConnect;
|
||||
std::string worldName;
|
||||
};
|
||||
|
||||
struct ApiConfig
|
||||
{
|
||||
GlobalConfig global;
|
||||
|
||||
struct Network
|
||||
{
|
||||
std::string listenIP;
|
||||
uint16_t listenPort;
|
||||
} network;
|
||||
};
|
||||
}
|
||||
|
||||
#endif //SAPPHIRE_CONFIGDEF_H
|
|
@ -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 );
|
||||
|
@ -18,6 +18,7 @@ bool Core::ConfigMgr::loadConfig( const std::string& configName )
|
|||
if( !fs::exists( configFile ) )
|
||||
{
|
||||
copyDefaultConfig( configName );
|
||||
return false;
|
||||
}
|
||||
|
||||
m_pInih = std::unique_ptr< INIReader >( new INIReader( configFile.string() ) );
|
||||
|
@ -28,7 +29,47 @@ bool Core::ConfigMgr::loadConfig( const std::string& configName )
|
|||
return true;
|
||||
}
|
||||
|
||||
bool Core::ConfigMgr::copyDefaultConfig( const std::string& configName )
|
||||
bool Sapphire::ConfigMgr::loadGlobalConfig( Common::Config::GlobalConfig& config, const std::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.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 );
|
||||
|
||||
// params
|
||||
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" );
|
||||
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 );
|
||||
configPath /= configName;
|
||||
|
@ -42,4 +83,4 @@ bool Core::ConfigMgr::copyDefaultConfig( const std::string& configName )
|
|||
fs::copy_file( configPath.string() + m_configDefaultSuffix, configPath );
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -6,47 +6,48 @@
|
|||
#include <inih/INIReader.h>
|
||||
#include <string>
|
||||
#include <stdint.h>
|
||||
#include "ConfigDef.h"
|
||||
|
||||
namespace Core
|
||||
namespace Sapphire
|
||||
{
|
||||
class ConfigMgr
|
||||
{
|
||||
public:
|
||||
ConfigMgr() = default;
|
||||
|
||||
~ConfigMgr() = default;
|
||||
|
||||
bool loadConfig( const std::string& configName );
|
||||
bool loadGlobalConfig( Common::Config::GlobalConfig& config, const std::string& configName = "global.ini" );
|
||||
|
||||
template<class T> 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<T, uint32_t>)
|
||||
if constexpr ( std::is_same_v< T, uint32_t > )
|
||||
return m_pInih->GetInteger( section, name, defaultValue );
|
||||
else if constexpr (std::is_same_v<T, int32_t>)
|
||||
else if constexpr ( std::is_same_v< T, int32_t > )
|
||||
return m_pInih->GetInteger( section, name, defaultValue );
|
||||
else if constexpr (std::is_same_v<T, uint16_t>)
|
||||
else if constexpr ( std::is_same_v< T, uint16_t > )
|
||||
return m_pInih->GetInteger( section, name, defaultValue );
|
||||
else if constexpr (std::is_same_v<T, int16_t>)
|
||||
else if constexpr ( std::is_same_v< T, int16_t > )
|
||||
return m_pInih->GetInteger( section, name, defaultValue );
|
||||
else if constexpr (std::is_same_v<T, uint8_t>)
|
||||
else if constexpr ( std::is_same_v< T, uint8_t > )
|
||||
return m_pInih->GetInteger( section, name, defaultValue );
|
||||
else if constexpr (std::is_same_v<T, int8_t>)
|
||||
else if constexpr ( std::is_same_v< T, int8_t > )
|
||||
return m_pInih->GetInteger( section, name, defaultValue );
|
||||
else if constexpr (std::is_same_v<T, long>)
|
||||
else if constexpr ( std::is_same_v< T, long > )
|
||||
return m_pInih->GetInteger( section, name, defaultValue );
|
||||
else if constexpr (std::is_same_v<T, double>)
|
||||
else if constexpr ( std::is_same_v< T, double > )
|
||||
return m_pInih->GetReal( section, name, defaultValue );
|
||||
else if constexpr (std::is_same_v<T, float>)
|
||||
else if constexpr ( std::is_same_v< T, float > )
|
||||
return m_pInih->GetReal( section, name, defaultValue );
|
||||
else if constexpr (std::is_same_v<T, std::string>)
|
||||
else if constexpr ( std::is_same_v< T, std::string > )
|
||||
return m_pInih->Get( section, name, defaultValue );
|
||||
else if constexpr (std::is_same_v<T, bool>)
|
||||
else if constexpr ( std::is_same_v< T, bool > )
|
||||
return m_pInih->GetBoolean( section, name, defaultValue );
|
||||
else
|
||||
static_assert(always_false<T>::value, "non-exhaustive getter!");
|
||||
static_assert( always_false< T >::value, "non-exhaustive getter!" );
|
||||
}
|
||||
|
||||
template< class T >
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include <string>
|
||||
|
||||
namespace Core::Util
|
||||
namespace Sapphire::Util
|
||||
{
|
||||
std::string base64_encode( uint8_t const*, uint32_t len );
|
||||
|
||||
|
|
|
@ -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 );
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <stdint.h>
|
||||
|
||||
namespace Core::Util
|
||||
namespace Sapphire::Util
|
||||
{
|
||||
using md5_context = struct
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
18
src/common/Database/DbCommon.h
Normal file
18
src/common/Database/DbCommon.h
Normal file
|
@ -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
|
|
@ -6,9 +6,7 @@
|
|||
#include "PreparedStatement.h"
|
||||
#include "Framework.h"
|
||||
|
||||
extern Core::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 +17,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 +29,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 +48,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;
|
||||
|
@ -66,49 +64,49 @@ uint32_t Core::Db::DbConnection::open()
|
|||
}
|
||||
catch( std::runtime_error& e )
|
||||
{
|
||||
g_fw.get< Logger >()->error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
return 1;
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
|
@ -118,12 +116,12 @@ bool Core::Db::DbConnection::execute( const std::string& sql )
|
|||
}
|
||||
catch( std::runtime_error& e )
|
||||
{
|
||||
g_fw.get< Logger >()->error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
|
@ -133,23 +131,23 @@ std::shared_ptr< Mysql::ResultSet > Core::Db::DbConnection::query( const std::st
|
|||
}
|
||||
catch( std::runtime_error& e )
|
||||
{
|
||||
g_fw.get< Logger >()->error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
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 )
|
||||
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;
|
||||
|
@ -170,13 +168,13 @@ Core::Db::DbConnection::query( std::shared_ptr< Core::Db::PreparedStatement > st
|
|||
}
|
||||
catch( std::runtime_error& e )
|
||||
{
|
||||
g_fw.get< Logger >()->error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
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;
|
||||
|
@ -196,12 +194,12 @@ bool Core::Db::DbConnection::execute( std::shared_ptr< Core::Db::PreparedStateme
|
|||
}
|
||||
catch( std::runtime_error& e )
|
||||
{
|
||||
g_fw.get< Logger >()->error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
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 +209,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 ) ) );
|
||||
|
||||
|
@ -232,7 +230,7 @@ void Core::Db::DbConnection::prepareStatement( uint32_t index, const std::string
|
|||
}
|
||||
catch( std::runtime_error& e )
|
||||
{
|
||||
g_fw.get< Logger >()->error( e.what() );
|
||||
Logger::error( e.what() );
|
||||
m_prepareError = true;
|
||||
}
|
||||
|
||||
|
@ -240,7 +238,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;
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
#include "Util/LockedWaitQueue.h"
|
||||
#include "DbCommon.h"
|
||||
|
||||
namespace Mysql
|
||||
{
|
||||
|
@ -16,7 +17,7 @@ namespace Mysql
|
|||
class PreparedStatement;
|
||||
}
|
||||
|
||||
namespace Core::Db
|
||||
namespace Sapphire::Db
|
||||
{
|
||||
class DatabaseWorker;
|
||||
class PreparedStatement;
|
||||
|
@ -31,17 +32,6 @@ namespace Core::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 :
|
||||
|
@ -52,7 +42,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();
|
||||
|
||||
|
|
|
@ -3,28 +3,23 @@
|
|||
#include "ZoneDbConnection.h"
|
||||
#include "DbWorkerPool.h"
|
||||
#include "Logging/Logger.h"
|
||||
#include "Framework.h"
|
||||
|
||||
extern Core::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
|
||||
{
|
||||
|
||||
auto pLog = g_fw.get< Logger >();
|
||||
const uint8_t asyncThreads = info.asyncThreads;
|
||||
const uint8_t synchThreads = info.syncThreads;
|
||||
|
||||
if( asyncThreads < 1 || asyncThreads > 32 )
|
||||
{
|
||||
pLog->error(
|
||||
Logger::error(
|
||||
"database: invalid number of worker threads specified. Please pick a value between 1 and 32." );
|
||||
return false;
|
||||
}
|
||||
|
@ -40,7 +35,7 @@ Core::Db::DbLoader& Core::Db::DbLoader::addDb( Core::Db::DbWorkerPool< T >& pool
|
|||
|
||||
if( error )
|
||||
{
|
||||
pLog->error( "DatabasePool failed to open." );
|
||||
Logger::error( "DatabasePool failed to open." );
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -55,8 +50,7 @@ Core::Db::DbLoader& Core::Db::DbLoader::addDb( Core::Db::DbWorkerPool< T >& pool
|
|||
{
|
||||
if( !pool.prepareStatements() )
|
||||
{
|
||||
auto pLog = g_fw.get< Logger >();
|
||||
pLog->error( "Could not prepare statements of the database, see log for details." );
|
||||
Logger::error( "Could not prepare statements of the database, see log for details." );
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@ -65,7 +59,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 +70,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 +102,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& );
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include <string>
|
||||
#include "DbConnection.h"
|
||||
|
||||
namespace Core::Db
|
||||
namespace Sapphire::Db
|
||||
{
|
||||
|
||||
template< class T >
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#include "Util/LockedWaitQueue.h"
|
||||
#include <memory>
|
||||
|
||||
namespace Core::Db
|
||||
namespace Sapphire::Db
|
||||
{
|
||||
class DbConnection;
|
||||
class Operation;
|
||||
|
|
|
@ -10,10 +10,8 @@
|
|||
#include "Logging/Logger.h"
|
||||
#include <mysql.h>
|
||||
|
||||
extern Core::Framework g_fw;
|
||||
|
||||
class PingOperation :
|
||||
public Core::Db::Operation
|
||||
public Sapphire::Db::Operation
|
||||
{
|
||||
bool execute() override
|
||||
{
|
||||
|
@ -23,24 +21,23 @@ class PingOperation :
|
|||
};
|
||||
|
||||
template< class T >
|
||||
Core::Db::DbWorkerPool< T >::DbWorkerPool()
|
||||
:
|
||||
m_queue( new Core::LockedWaitQueue< std::shared_ptr< Operation > >() ),
|
||||
Sapphire::Db::DbWorkerPool< T >::DbWorkerPool() :
|
||||
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,
|
||||
uint8_t asyncThreads,
|
||||
uint8_t synchThreads )
|
||||
void Sapphire::Db::DbWorkerPool< T >::setConnectionInfo( const ConnectionInfo& info,
|
||||
uint8_t asyncThreads,
|
||||
uint8_t synchThreads )
|
||||
{
|
||||
m_connectionInfo = info;
|
||||
m_asyncThreads = asyncThreads;
|
||||
|
@ -48,12 +45,10 @@ 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() +
|
||||
" 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 );
|
||||
|
||||
|
@ -64,26 +59,24 @@ uint32_t Core::Db::DbWorkerPool< T >::open()
|
|||
|
||||
if( !error )
|
||||
{
|
||||
pLog->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;
|
||||
}
|
||||
|
||||
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() );
|
||||
Logger::info( "[DbPool] Closing down DatabasePool {0}", getDatabaseName() );
|
||||
m_connections[ IDX_ASYNC ].clear();
|
||||
m_connections[ IDX_SYNCH ].clear();
|
||||
pLog->info( "[DbPool] All connections on DatabasePool " + getDatabaseName() + "closed." );
|
||||
Logger::info( "[DbPool] All connections on DatabasePool {0} closed.", getDatabaseName() );
|
||||
}
|
||||
|
||||
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 +97,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 +110,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 +120,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 +139,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 +156,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 +187,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 +197,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 +221,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 +249,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 +277,4 @@ void DatabaseWorkerPool<T>::ExecuteOrAppend(SQLTransaction& trans, PreparedState
|
|||
*/
|
||||
|
||||
template
|
||||
class Core::Db::DbWorkerPool< Core::Db::ZoneDbConnection >;
|
||||
class Sapphire::Db::DbWorkerPool< Sapphire::Db::ZoneDbConnection >;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -6,7 +6,7 @@ namespace Mysql
|
|||
class Connection;
|
||||
}
|
||||
|
||||
namespace Core::Db
|
||||
namespace Sapphire::Db
|
||||
{
|
||||
class DbConnection;
|
||||
|
||||
|
|
|
@ -7,17 +7,17 @@
|
|||
#include <sstream>
|
||||
#include <cassert>
|
||||
|
||||
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;
|
||||
}
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace Mysql
|
|||
class PreparedStatement;
|
||||
}
|
||||
|
||||
namespace Core::Db
|
||||
namespace Sapphire::Db
|
||||
{
|
||||
union PreparedStatementDataUnion
|
||||
{
|
||||
|
|
|
@ -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)
|
||||
//{
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#include "Operation.h"
|
||||
#include <memory>
|
||||
|
||||
namespace Core::Db
|
||||
namespace Sapphire::Db
|
||||
{
|
||||
class PreparedStatement;
|
||||
|
||||
|
|
|
@ -1,22 +1,22 @@
|
|||
#include "ZoneDbConnection.h"
|
||||
#include <MySqlConnector.h>
|
||||
|
||||
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,
|
||||
ConnectionInfo& connInfo ) :
|
||||
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 );
|
||||
|
@ -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 ) "
|
||||
|
@ -142,19 +142,19 @@ void Core::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 = ?;",
|
||||
|
@ -172,22 +172,112 @@ void Core::Db::ZoneDbConnection::doPrepareStatements()
|
|||
|
||||
/// ITEM GLOBAL
|
||||
prepareStatement( CHARA_ITEMGLOBAL_INS,
|
||||
"INSERT INTO charaglobalitem ( CharacterId, ItemId, catalogId, UPDATE_DATE ) VALUES ( ?, ?, ?, NOW() );",
|
||||
CONNECTION_BOTH );
|
||||
"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, "
|
||||
"modelChara, displayFlags, Look, Models "
|
||||
"FROM bnpctemplate WHERE 1;",
|
||||
CONNECTION_BOTH);
|
||||
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, gimmickId "
|
||||
"FROM spawnpoint "
|
||||
"WHERE spawnGroupId = ?",
|
||||
CONNECTION_BOTH );
|
||||
|
||||
prepareStatement( CHARA_ITEMGLOBAL_UP,
|
||||
"UPDATE charaglobalitem SET stack = ?, durability = ?, stain = ? WHERE ItemId = ?;",
|
||||
CONNECTION_BOTH );
|
||||
|
||||
prepareStatement( CHARA_ITEMGLOBAL_DELETE,
|
||||
"UPDATE charaglobalitem SET IS_DELETE = 1 WHERE ItemId = ?;",
|
||||
"UPDATE charaglobalitem SET deleted = 1 WHERE ItemId = ?;",
|
||||
CONNECTION_BOTH );
|
||||
|
||||
/// HOUSING
|
||||
prepareStatement( HOUSING_HOUSE_INS,
|
||||
"INSERT INTO house ( LandSetId, HouseId, HouseName ) VALUES ( ?, ?, ? );",
|
||||
CONNECTION_BOTH );
|
||||
|
||||
prepareStatement( HOUSING_HOUSE_UP,
|
||||
"UPDATE house SET BuildTime = ?, Aetheryte = ?, Comment = ?, HouseName = ?, Endorsements = ? WHERE HouseId = ?;",
|
||||
CONNECTION_BOTH );
|
||||
|
||||
prepareStatement( LAND_INV_SEL_ALL,
|
||||
"SELECT houseiteminventory.*, charaglobalitem.catalogId, charaglobalitem.stain, charaglobalitem.CharacterId, "
|
||||
"landplaceditems.PosX, landplaceditems.PosY, landplaceditems.PosZ, landplaceditems.Rotation "
|
||||
"FROM houseiteminventory "
|
||||
"LEFT JOIN charaglobalitem "
|
||||
"ON houseiteminventory.ItemId = charaglobalitem.itemId "
|
||||
"LEFT JOIN landplaceditems "
|
||||
"ON houseiteminventory.ItemId = landplaceditems.ItemId;",
|
||||
CONNECTION_BOTH );
|
||||
|
||||
prepareStatement( LAND_INV_SEL_HOUSE,
|
||||
"SELECT LandIdent, ContainerId, ItemId, SlotId FROM houseiteminventory WHERE LandIdent = ?",
|
||||
CONNECTION_SYNC );
|
||||
|
||||
prepareStatement( LANDSET_SEL,
|
||||
"SELECT * FROM land WHERE LandSetId = ?;",
|
||||
CONNECTION_SYNC );
|
||||
|
||||
prepareStatement( LAND_SEL_ALL,
|
||||
"SELECT land.*, house.Welcome, house.Aetheryte, house.Comment, house.HouseName, house.BuildTime, house.Endorsements "
|
||||
"FROM land "
|
||||
"LEFT JOIN house "
|
||||
"ON land.HouseId = house.HouseId;",
|
||||
CONNECTION_SYNC );
|
||||
|
||||
prepareStatement( LAND_INV_UP,
|
||||
"INSERT INTO houseiteminventory ( LandIdent, ContainerId, SlotId, ItemId ) "
|
||||
"VALUES ( ?, ?, ?, ? ) "
|
||||
"ON DUPLICATE KEY UPDATE ItemId = ?;",
|
||||
CONNECTION_BOTH );
|
||||
|
||||
prepareStatement( LAND_INV_DEL,
|
||||
"DELETE FROM houseiteminventory "
|
||||
"WHERE LandIdent = ? AND ContainerId = ? AND SlotId = ?;",
|
||||
CONNECTION_BOTH );
|
||||
|
||||
prepareStatement( LAND_INV_UP_ITEMPOS,
|
||||
"INSERT INTO landplaceditems ( ItemId, PosX, PosY, PosZ, Rotation ) "
|
||||
"VALUES ( ?, ?, ?, ?, ? ) "
|
||||
"ON DUPLICATE KEY UPDATE PosX = ?, PosY = ?, PosZ = ?, Rotation = ?;",
|
||||
CONNECTION_BOTH );
|
||||
|
||||
prepareStatement( LAND_INV_DEL_ITEMPOS,
|
||||
"DELETE FROM landplaceditems "
|
||||
"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 );*/
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include "DbConnection.h"
|
||||
|
||||
namespace Core::Db
|
||||
namespace Sapphire::Db
|
||||
{
|
||||
class DbConnectionInfo;
|
||||
|
||||
|
@ -77,6 +77,25 @@ namespace Core::Db
|
|||
CHARA_ITEMGLOBAL_DELETE,
|
||||
|
||||
ZONE_SEL_BNPCTEMPLATES,
|
||||
ZONE_SEL_SPAWNGROUPS,
|
||||
ZONE_SEL_SPAWNPOINTS,
|
||||
|
||||
LAND_INS,
|
||||
LAND_SEL,
|
||||
LAND_SEL_ALL,
|
||||
LAND_UP,
|
||||
LANDSET_SEL,
|
||||
HOUSING_HOUSE_INS,
|
||||
HOUSING_HOUSE_UP,
|
||||
HOUSING_HOUSE_DEL,
|
||||
|
||||
LAND_INV_SEL_ALL,
|
||||
LAND_INV_SEL_HOUSE,
|
||||
LAND_INV_DEL,
|
||||
LAND_INV_UP,
|
||||
LAND_INV_UP_ITEMPOS,
|
||||
LAND_INV_DEL_ITEMPOS,
|
||||
|
||||
|
||||
MAX_STATEMENTS
|
||||
};
|
||||
|
@ -88,7 +107,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();
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -3,11 +3,13 @@
|
|||
|
||||
#include <memory>
|
||||
|
||||
namespace Core
|
||||
namespace Sapphire
|
||||
{
|
||||
|
||||
class ConfigMgr;
|
||||
using ConfigMgrPtr = std::shared_ptr< ConfigMgr >;
|
||||
class Framework;
|
||||
using FrameworkPtr = std::shared_ptr< Framework >;
|
||||
|
||||
namespace Network
|
||||
{
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include <memory>
|
||||
#include <cassert>
|
||||
|
||||
namespace Core
|
||||
namespace Sapphire
|
||||
{
|
||||
|
||||
class Framework
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
namespace fs = std::experimental::filesystem;
|
||||
|
||||
namespace Core
|
||||
namespace Sapphire
|
||||
{
|
||||
|
||||
Logger::Logger()
|
||||
|
@ -23,9 +23,9 @@ namespace Core
|
|||
|
||||
}
|
||||
|
||||
void Logger::setLogPath( const std::string& logPath )
|
||||
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 )
|
||||
{
|
||||
|
@ -33,15 +33,10 @@ namespace Core
|
|||
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 );
|
||||
auto daily_sink = std::make_shared< spdlog::sinks::daily_file_sink_mt >( logPath + ".log", 0, 0 );
|
||||
|
||||
std::vector< spdlog::sink_ptr > sinks { stdout_sink, daily_sink };
|
||||
|
||||
|
@ -63,6 +58,11 @@ namespace Core
|
|||
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 );
|
||||
|
@ -78,4 +78,9 @@ namespace Core
|
|||
spdlog::get( "logger" )->critical( text );
|
||||
}
|
||||
|
||||
void Logger::trace( const std::string& text )
|
||||
{
|
||||
spdlog::get( "logger" )->trace( text );
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -3,7 +3,9 @@
|
|||
|
||||
#include <string>
|
||||
|
||||
namespace Core
|
||||
#include <spdlog/fmt/fmt.h>
|
||||
|
||||
namespace Sapphire
|
||||
{
|
||||
|
||||
class Logger
|
||||
|
@ -11,23 +13,61 @@ namespace Core
|
|||
|
||||
private:
|
||||
std::string m_logFile;
|
||||
|
||||
public:
|
||||
Logger();
|
||||
|
||||
~Logger();
|
||||
|
||||
void init();
|
||||
public:
|
||||
|
||||
void error( const std::string& text );
|
||||
static void init( const std::string& logPath );
|
||||
|
||||
void info( const std::string& text );
|
||||
// todo: this is a minor increase in build time because of fmtlib, but much less than including spdlog directly
|
||||
|
||||
void debug( const std::string& text );
|
||||
static void error( const std::string& text );
|
||||
template< typename... Args >
|
||||
static void error( const std::string& text, const Args&... args )
|
||||
{
|
||||
error( fmt::format( text, args... ) );
|
||||
}
|
||||
|
||||
void fatal( const std::string& text );
|
||||
static void warn( const std::string& text );
|
||||
template< typename... Args >
|
||||
static void warn( const std::string& text, const Args&... args )
|
||||
{
|
||||
warn( fmt::format( text, args... ) );
|
||||
}
|
||||
|
||||
|
||||
static void info( const std::string& text );
|
||||
template< typename... Args >
|
||||
static void info( const std::string& text, const Args&... args )
|
||||
{
|
||||
info( fmt::format( text, args... ) );
|
||||
}
|
||||
|
||||
|
||||
static void debug( const std::string& text );
|
||||
template< typename... Args >
|
||||
static void debug( const std::string& text, const Args&... args )
|
||||
{
|
||||
debug( fmt::format( text, args... ) );
|
||||
}
|
||||
|
||||
|
||||
static void fatal( const std::string& text );
|
||||
template< typename... Args >
|
||||
static void fatal( const std::string& text, const Args&... args )
|
||||
{
|
||||
fatal( fmt::format( text, args... ) );
|
||||
}
|
||||
|
||||
|
||||
static void trace( const std::string& text );
|
||||
template< typename... Args >
|
||||
static void trace( const std::string& text, const Args&... args )
|
||||
{
|
||||
trace( fmt::format( text, args... ) );
|
||||
}
|
||||
|
||||
void setLogPath( const std::string& logPath );
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#include "Acceptor.h"
|
||||
#include "Connection.h"
|
||||
|
||||
namespace Core {
|
||||
namespace Sapphire {
|
||||
namespace Network {
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#include <vector>
|
||||
|
||||
|
||||
namespace Core::Network
|
||||
namespace Sapphire::Network
|
||||
{
|
||||
|
||||
class Connection;
|
||||
|
|
|
@ -8,302 +8,367 @@
|
|||
|
||||
// +---------------------------------------------------------------------------
|
||||
// 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 {
|
||||
namespace Network {
|
||||
namespace ActorControl {
|
||||
|
||||
enum ActorControlType :
|
||||
uint16_t
|
||||
namespace Sapphire::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,
|
||||
enum ActorControlType : uint16_t
|
||||
{
|
||||
/*! 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,
|
||||
|
||||
ExpChainMsg = 0x0C,
|
||||
HpSetStat = 0x0D,
|
||||
DeathAnimation = 0x0E,
|
||||
CastInterrupt = 0x0F,
|
||||
LevelUpEffect = 0x0A,
|
||||
|
||||
ActionStart = 0x11,
|
||||
ExpChainMsg = 0x0C,
|
||||
HpSetStat = 0x0D,
|
||||
DeathAnimation = 0x0E,
|
||||
CastInterrupt = 0x0F,
|
||||
|
||||
StatusEffectGain = 0x14,
|
||||
StatusEffectLose = 0x15,
|
||||
ActionStart = 0x11,
|
||||
|
||||
HPFloatingText = 0x17,
|
||||
UpdateRestedExp = 0x018,
|
||||
Unk2 = 0x19,
|
||||
StatusEffectGain = 0x14,
|
||||
StatusEffectLose = 0x15,
|
||||
|
||||
Flee = 0x1B,
|
||||
HPFloatingText = 0x17,
|
||||
UpdateRestedExp = 0x018,
|
||||
Unk2 = 0x19,
|
||||
|
||||
Unk3 = 0x20, // Animation related?
|
||||
Flee = 0x1B,
|
||||
|
||||
CombatIndicationShow = 0x22,
|
||||
Unk3 = 0x20, // Animation related?
|
||||
|
||||
SpawnEffect = 0x25,
|
||||
ToggleInvisible = 0x26,
|
||||
CombatIndicationShow = 0x22,
|
||||
|
||||
ToggleActionUnlock = 0x29,
|
||||
SpawnEffect = 0x25,
|
||||
ToggleInvisible = 0x26,
|
||||
|
||||
UpdateUiExp = 0x2B,
|
||||
DmgTakenMsg = 0x2D,
|
||||
ToggleActionUnlock = 0x29,
|
||||
|
||||
SetTarget = 0x32,
|
||||
ToggleNameHidden = 0x36,
|
||||
UpdateUiExp = 0x2B,
|
||||
DmgTakenMsg = 0x2D,
|
||||
|
||||
LimitbreakStart = 0x47,
|
||||
LimitbreakPartyStart = 0x48,
|
||||
BubbleText = 0x49,
|
||||
SetTarget = 0x32,
|
||||
ToggleNameHidden = 0x36,
|
||||
|
||||
DamageEffect = 0x50,
|
||||
RaiseAnimation = 0x51,
|
||||
TreasureScreenMsg = 0x57,
|
||||
SetOwnerId = 0x59,
|
||||
ItemRepairMsg = 0x5C,
|
||||
LimitbreakStart = 0x47,
|
||||
LimitbreakPartyStart = 0x48,
|
||||
BubbleText = 0x49,
|
||||
|
||||
DirectorInit = 0x64,
|
||||
DirectorClear = 0x65,
|
||||
DamageEffect = 0x50,
|
||||
RaiseAnimation = 0x51,
|
||||
TreasureScreenMsg = 0x57,
|
||||
SetOwnerId = 0x59,
|
||||
ItemRepairMsg = 0x5C,
|
||||
|
||||
LeveStartAnim = 0x66,
|
||||
LeveStartError = 0x67,
|
||||
DirectorEObjMod = 0x6A,
|
||||
DirectorInit = 0x64,
|
||||
DirectorClear = 0x65,
|
||||
|
||||
DirectorUpdate = 0x6D,
|
||||
LeveStartAnim = 0x66,
|
||||
LeveStartError = 0x67,
|
||||
DirectorEObjMod = 0x6A,
|
||||
|
||||
ItemObtainMsg = 0x75,
|
||||
DutyQuestScreenMsg = 0x7B,
|
||||
DirectorUpdate = 0x6D,
|
||||
|
||||
ItemObtainIcon = 0x84,
|
||||
FateItemFailMsg = 0x85,
|
||||
ItemFailMsg = 0x86,
|
||||
ActionLearnMsg1 = 0x87,
|
||||
ItemObtainMsg = 0x75,
|
||||
DutyQuestScreenMsg = 0x7B,
|
||||
|
||||
FreeEventPos = 0x8A,
|
||||
ItemObtainIcon = 0x84,
|
||||
FateItemFailMsg = 0x85,
|
||||
ItemFailMsg = 0x86,
|
||||
ActionLearnMsg1 = 0x87,
|
||||
|
||||
SetBGM = 0xA1,
|
||||
FreeEventPos = 0x8A,
|
||||
|
||||
UnlockAetherCurrentMsg = 0xA4,
|
||||
SetBGM = 0xA1,
|
||||
|
||||
RemoveName = 0xA8,
|
||||
UnlockAetherCurrentMsg = 0xA4,
|
||||
|
||||
ScreenFadeOut = 0xAA,
|
||||
RemoveName = 0xA8,
|
||||
|
||||
ZoneIn = 0xC8,
|
||||
ZoneInDefaultPos = 0xC9,
|
||||
ScreenFadeOut = 0xAA,
|
||||
|
||||
TeleportStart = 0xCB,
|
||||
ZoneIn = 0xC8,
|
||||
ZoneInDefaultPos = 0xC9,
|
||||
|
||||
TeleportDone = 0xCD,
|
||||
TeleportDoneFadeOut = 0xCE,
|
||||
DespawnZoneScreenMsg = 0xCF,
|
||||
TeleportStart = 0xCB,
|
||||
|
||||
InstanceSelectDlg = 0xD2,
|
||||
ActorDespawnEffect = 0xD4,
|
||||
TeleportDone = 0xCD,
|
||||
TeleportDoneFadeOut = 0xCE,
|
||||
DespawnZoneScreenMsg = 0xCF,
|
||||
|
||||
CompanionUnlock = 0xFD,
|
||||
ObtainBarding = 0xFE,
|
||||
EquipBarding = 0xFF,
|
||||
InstanceSelectDlg = 0xD2,
|
||||
ActorDespawnEffect = 0xD4,
|
||||
|
||||
CompanionMsg1 = 0x102,
|
||||
CompanionMsg2 = 0x103,
|
||||
ShowPetHotbar = 0x104,
|
||||
CompanionUnlock = 0xFD,
|
||||
ObtainBarding = 0xFE,
|
||||
EquipBarding = 0xFF,
|
||||
|
||||
ActionLearnMsg = 0x109,
|
||||
ActorFadeOut = 0x10A,
|
||||
ActorFadeIn = 0x10B,
|
||||
WithdrawMsg = 0x10C,
|
||||
OrderMinion = 0x10D,
|
||||
ToggleMinion = 0x10E,
|
||||
LearnMinion = 0x10F,
|
||||
ActorFateOut1 = 0x110,
|
||||
CompanionMsg1 = 0x102,
|
||||
CompanionMsg2 = 0x103,
|
||||
ShowPetHotbar = 0x104,
|
||||
|
||||
Emote = 0x122,
|
||||
EmoteInterrupt = 0x123,
|
||||
ActionLearnMsg = 0x109,
|
||||
ActorFadeOut = 0x10A,
|
||||
ActorFadeIn = 0x10B,
|
||||
WithdrawMsg = 0x10C,
|
||||
OrderMinion = 0x10D,
|
||||
ToggleMinion = 0x10E,
|
||||
LearnMinion = 0x10F,
|
||||
ActorFateOut1 = 0x110,
|
||||
|
||||
SetPose = 0x127,
|
||||
Emote = 0x122,
|
||||
EmoteInterrupt = 0x123,
|
||||
|
||||
CraftingUnk = 0x12C,
|
||||
SetPose = 0x127,
|
||||
|
||||
GatheringSenseMsg = 0x130,
|
||||
PartyMsg = 0x131,
|
||||
GatheringSenseMsg1 = 0x132,
|
||||
CraftingUnk = 0x12C,
|
||||
|
||||
GatheringSenseMsg2 = 0x138,
|
||||
GatheringSenseMsg = 0x130,
|
||||
PartyMsg = 0x131,
|
||||
GatheringSenseMsg1 = 0x132,
|
||||
|
||||
FishingMsg = 0x140,
|
||||
GatheringSenseMsg2 = 0x138,
|
||||
|
||||
FishingBaitMsg = 0x145,
|
||||
FishingMsg = 0x140,
|
||||
|
||||
FishingReachMsg = 0x147,
|
||||
FishingFailMsg = 0x148,
|
||||
FishingBaitMsg = 0x145,
|
||||
|
||||
MateriaConvertMsg = 0x15E,
|
||||
MeldSuccessMsg = 0x15F,
|
||||
MeldFailMsg = 0x160,
|
||||
MeldModeToggle = 0x161,
|
||||
FishingReachMsg = 0x147,
|
||||
FishingFailMsg = 0x148,
|
||||
|
||||
AetherRestoreMsg = 0x163,
|
||||
MateriaConvertMsg = 0x15E,
|
||||
MeldSuccessMsg = 0x15F,
|
||||
MeldFailMsg = 0x160,
|
||||
MeldModeToggle = 0x161,
|
||||
|
||||
DyeMsg = 0x168,
|
||||
AetherRestoreMsg = 0x163,
|
||||
|
||||
ToggleCrestMsg = 0x16A,
|
||||
ToggleBulkCrestMsg = 0x16B,
|
||||
MateriaRemoveMsg = 0x16C,
|
||||
GlamourCastMsg = 0x16D,
|
||||
GlamourRemoveMsg = 0x16E,
|
||||
DyeMsg = 0x168,
|
||||
|
||||
RelicInfuseMsg = 0x179,
|
||||
ToggleCrestMsg = 0x16A,
|
||||
ToggleBulkCrestMsg = 0x16B,
|
||||
MateriaRemoveMsg = 0x16C,
|
||||
GlamourCastMsg = 0x16D,
|
||||
GlamourRemoveMsg = 0x16E,
|
||||
|
||||
AetherReductionDlg = 0x17D,
|
||||
RelicInfuseMsg = 0x179,
|
||||
|
||||
Unk6 = 0x19C,
|
||||
EObjAnimation = 0x19D,
|
||||
AetherReductionDlg = 0x17D,
|
||||
|
||||
SetTitle = 0x1F4,
|
||||
Unk6 = 0x19C,
|
||||
EObjAnimation = 0x19D,
|
||||
|
||||
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,
|
||||
SetTitle = 0x1F4,
|
||||
|
||||
OpenRecommendationGuide = 0x200,
|
||||
ArmoryErrorMsg = 0x201,
|
||||
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,
|
||||
|
||||
AchievementPopup = 0x203,
|
||||
OpenRecommendationGuide = 0x200,
|
||||
ArmoryErrorMsg = 0x201,
|
||||
|
||||
Unk7 = 0x205, // LogMessage?
|
||||
AchievementMsg = 0x206,
|
||||
AchievementPopup = 0x203,
|
||||
|
||||
SetItemLevel = 0x209,
|
||||
LogMsg = 0x205, // LogMessage?
|
||||
AchievementMsg = 0x206,
|
||||
|
||||
ChallengeEntryCompleteMsg = 0x20B,
|
||||
ChallengeEntryUnlockMsg = 0x20C,
|
||||
SetItemLevel = 0x209,
|
||||
|
||||
GilTrailMsg = 0x211,
|
||||
ChallengeEntryCompleteMsg = 0x20B,
|
||||
ChallengeEntryUnlockMsg = 0x20C,
|
||||
|
||||
SetMaxGearSets = 0x230,
|
||||
GilTrailMsg = 0x211,
|
||||
|
||||
SetCharaGearParamUI = 0x260,
|
||||
ToggleWireframeRendering = 0x261,
|
||||
SetMaxGearSets = 0x230,
|
||||
|
||||
ExamineError = 0x2BF,
|
||||
SetCharaGearParamUI = 0x260,
|
||||
ToggleWireframeRendering = 0x261,
|
||||
|
||||
GearSetEquipMsg = 0x321,
|
||||
ExamineError = 0x2BF,
|
||||
|
||||
SetFestival = 0x386, // param1: festival.exd index
|
||||
GearSetEquipMsg = 0x321,
|
||||
|
||||
ToggleOrchestrionUnlock = 0x396,
|
||||
Dismount = 0x3A0,
|
||||
SetFestival = 0x386, // param1: festival.exd index
|
||||
|
||||
// Duty Recorder
|
||||
BeginReplayAck = 0x3A1,
|
||||
EndReplayAck = 0x3A2,
|
||||
ToggleOrchestrionUnlock = 0x396,
|
||||
Dismount = 0x3A1, // updated 4.5
|
||||
|
||||
// PvP Duel
|
||||
// Duty Recorder
|
||||
BeginReplayAck = 0x3A2,
|
||||
EndReplayAck = 0x3A3,
|
||||
|
||||
// Housing
|
||||
ShowHousingItemUI = 0x3F7,
|
||||
ShowBuildPresetUI = 0x3E9,
|
||||
/*!
|
||||
* param1 = plot id
|
||||
*/
|
||||
ShowEstateExternalAppearanceUI = 0x3EA,
|
||||
ShowEstateInternalAppearanceUI = 0x3EB,
|
||||
BuildPresetResponse = 0x3ED,
|
||||
|
||||
/*!
|
||||
* param1 = u16 landid
|
||||
* u16 slotid
|
||||
*/
|
||||
RemoveExteriorHousingItem = 0x3EF,
|
||||
|
||||
/*!
|
||||
* param1 = object array index
|
||||
*/
|
||||
RemoveInteriorHousingItem = 0x3F1,
|
||||
|
||||
/*!
|
||||
* param1 = identity shit
|
||||
* u16 1 - container id
|
||||
* u16 2 - plot id
|
||||
* param2 = item shit
|
||||
* u16 1 - slot
|
||||
*/
|
||||
HousingItemMoveConfirm = 0x3F9,
|
||||
OpenEstateSettingsUI = 0x3FF,
|
||||
HideAdditionalChambersDoor = 0x400,
|
||||
|
||||
/*!
|
||||
* 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)
|
||||
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.
|
||||
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
|
||||
// Duty Action
|
||||
SetDutyActionId = 0x5E8, // ContentExAction
|
||||
SetDutyActionHud = 0x5E9, // disable/enable
|
||||
SetDutyActionActive = 0x5EA,
|
||||
SetDutyActionRemaining = 0x5EB,
|
||||
};
|
||||
SetDutyActionHud = 0x5E9, // disable/enable
|
||||
SetDutyActionActive = 0x5EA,
|
||||
SetDutyActionRemaining = 0x5EB,
|
||||
};
|
||||
|
||||
enum ClientTriggerType
|
||||
{
|
||||
ToggleSheathe = 0x01,
|
||||
ToggleAutoAttack = 0x02,
|
||||
ChangeTarget = 0x03,
|
||||
enum ClientTriggerType
|
||||
{
|
||||
ToggleSheathe = 0x01,
|
||||
ToggleAutoAttack = 0x02,
|
||||
ChangeTarget = 0x03,
|
||||
|
||||
DismountReq = 0x65,
|
||||
DismountReq = 0x65,
|
||||
|
||||
RemoveStatusEffect = 0x68,
|
||||
CastCancel = 0x69,
|
||||
RemoveStatusEffect = 0x68,
|
||||
CastCancel = 0x69,
|
||||
|
||||
Return = 0xC8, // return dead / accept raise
|
||||
FinishZoning = 0xC9,
|
||||
Teleport = 0xCA,
|
||||
Return = 0xC8, // return dead / accept raise
|
||||
FinishZoning = 0xC9,
|
||||
Teleport = 0xCA,
|
||||
|
||||
Examine = 0x12C,
|
||||
MarkPlayer = 0x12D, // Mark player, visible to party only
|
||||
SetTitleReq = 0x12E,
|
||||
TitleList = 0x12F,
|
||||
Examine = 0x12C,
|
||||
MarkPlayer = 0x12D, // Mark player, visible to party only
|
||||
SetTitleReq = 0x12E,
|
||||
TitleList = 0x12F,
|
||||
|
||||
UpdatedSeenHowTos = 0x133,
|
||||
AllotAttribute = 0x135,
|
||||
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,
|
||||
ClearWaymarks = 0x13A,
|
||||
CameraMode = 0x13B, // param12, 1 = camera mode enable, 0 = disable
|
||||
CharaNameReq = 0x13D, // requests character name by content id
|
||||
HuntingLogDetails = 0x194,
|
||||
|
||||
Timers = 0x1AB,
|
||||
Timers = 0x1AB,
|
||||
|
||||
DyeItem = 0x1B5,
|
||||
DyeItem = 0x1B5,
|
||||
|
||||
RequestChocoboInventory = 0x1C4,
|
||||
RequestChocoboInventory = 0x1C4,
|
||||
|
||||
EmoteReq = 0x1F4,
|
||||
EmoteCancel = 0x1F6,
|
||||
PersistentEmoteCancel = 0x1F7,
|
||||
PoseChange = 0x1F9,
|
||||
PoseReapply = 0x1FA,
|
||||
PoseCancel = 0x1FB,
|
||||
EmoteReq = 0x1F4,
|
||||
EmoteCancel = 0x1F6,
|
||||
PersistentEmoteCancel = 0x1F7,
|
||||
PoseChange = 0x1F9,
|
||||
PoseReapply = 0x1FA,
|
||||
PoseCancel = 0x1FB,
|
||||
|
||||
AchievementCrit = 0x202,
|
||||
AchievementComp = 0x203,
|
||||
AchievementCatChat = 0x206,
|
||||
AchievementCrit = 0x202,
|
||||
AchievementComp = 0x203,
|
||||
AchievementCatChat = 0x206,
|
||||
|
||||
QuestJournalUpdateQuestVisibility = 0x2BE,
|
||||
QuestJournalClosed = 0x2BF,
|
||||
QuestJournalUpdateQuestVisibility = 0x2BE,
|
||||
QuestJournalClosed = 0x2BF,
|
||||
|
||||
AbandonQuest = 0x320,
|
||||
AbandonQuest = 0x320,
|
||||
|
||||
DirectorInitFinish = 0x321,
|
||||
DirectorInitFinish = 0x321,
|
||||
|
||||
DirectorSync = 0x328, // unsure what exactly triggers it, starts director when returning to instance though
|
||||
DirectorSync = 0x328, // unsure what exactly triggers it, starts director when returning to instance though
|
||||
|
||||
EnterTerritoryEventFinished = 0x330,
|
||||
RequestInstanceLeave = 0x333, // df menu button
|
||||
EnterTerritoryEventFinished = 0x330,
|
||||
RequestInstanceLeave = 0x333, // df menu button
|
||||
|
||||
AchievementCritReq = 0x3E8,
|
||||
AchievementList = 0x3E9,
|
||||
AchievementCritReq = 0x3E8,
|
||||
AchievementList = 0x3E9,
|
||||
|
||||
RequestSharedEstateSettings = 0x46F,
|
||||
SetEstateLightingLevel = 0x40B, // param1 = light level 0 - 5 maps to UI val 5-0
|
||||
RequestHousingBuildPreset = 0x44C,
|
||||
RequestEstateExteriorRemodel = 0x044D, // param11 = land id
|
||||
RequestEstateInteriorRemodel = 0x44E,
|
||||
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,
|
||||
RequestWardLandInfo = 0x453,
|
||||
RequestLandRelinquish = 0x454,
|
||||
RequestLandInventory = 0x0458,
|
||||
RequestHousingItemRemove = 0x0459,
|
||||
RequestEstateRename = 0x45A,
|
||||
RequestEstateEditGreeting = 0x45B,
|
||||
RequestEstateGreeting = 0x45C, // sends FFXIVIpcHousingEstateGreeting in return
|
||||
RequestEstateEditGuestAccessSettings = 0x45D,
|
||||
UpdateEstateGuestAccess = 0x45E,
|
||||
RequestEstateTagSettings = 0x45F,
|
||||
RequestEstateInventory = 0x0461,
|
||||
RequestHousingItemUI = 0x463,
|
||||
RequestSharedEstateSettings = 0x46F,
|
||||
UpdateEstateLightingLevel = 0x471,
|
||||
HousingItemSelectedInUI = 0x47E,
|
||||
|
||||
CompanionAction = 0x6A4,
|
||||
CompanionSetBarding = 0x6A5,
|
||||
CompanionActionUnlock = 0x6A6,
|
||||
CompanionAction = 0x6A4,
|
||||
CompanionSetBarding = 0x6A5,
|
||||
CompanionActionUnlock = 0x6A6,
|
||||
|
||||
OpenPerformInstrumentUI = 0x71C,
|
||||
OpenPerformInstrumentUI = 0x71C,
|
||||
|
||||
StartReplay = 0x7BC,
|
||||
EndReplay = 0x7BD, // request for restoring the original player state (actor, buff, gauge, etc..)
|
||||
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
|
||||
OpenDuelUI = 0x898, // Open a duel ui
|
||||
DuelRequestResult = 0x899, // either accept/reject
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
} /* ActorControl */
|
||||
} /* Common */
|
||||
} /* Core */
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#include <vector>
|
||||
#include "PacketDef/Ipcs.h"
|
||||
|
||||
namespace Core::Network::Packets
|
||||
namespace Sapphire::Network::Packets
|
||||
{
|
||||
|
||||
/**
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue