1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
|
#!/bin/bash
# Set client and server directories as environment variables
# if you don't want to enter them here
if [ -z $CLIENT_DIR ]; then
echo -n "Enter directory where client files are located: "
read CLIENT_DIR
if ! cd $CLIENT_DIR; then
echo "Cannot access $CLIENT_DIR"
exit 1
fi
if [ ! -d $CLIENT_DIR/Data ]; then
echo "Cannot find client files in $CLIENT_DIR"
exit 1
fi
fi
if [ -z $SERVER_DIR ]; then
echo -n "Enter directory where server files are located: "
read SERVER_DIR
if ! cd $SERVER_DIR; then
echo "Cannot access $SERVER_DIR"
exit 1
fi
fi
# These should all be correct on a standard installation
DATA_DIR=${SERVER_DIR}/data
MAPEXTRACTOR=${SERVER_DIR}/bin/mapextractor
VMAP4EXTRACTOR=${SERVER_DIR}/bin/vmap4extractor
VMAP4ASSEMBLER=${SERVER_DIR}/bin/vmap4assembler
MMAPS_GENERATOR=${SERVER_DIR}/bin/mmaps_generator
check_files() {
for i in $MAPEXTRACTOR $VMAP4EXTRACTOR $VMAP4ASSEMBLER $MMAPS_GENERATOR
do
if [[ ! -x $i ]]
then
echo "Invalid executable: $i"
echo "Check that the extraction tools are installed correctly."
exit
fi
done
}
show_header() {
echo "======================================================"
echo "Trinitycore (3.3.5) DBC, Maps, VMaps & MMaps Extractor"
echo "======================================================"
echo
echo
echo "Client directory: ${CLIENT_DIR}"
echo "Data directory: ${DATA_DIR}"
echo
}
extract_dbc_maps() {
echo
echo "Extracting DBC, Camera and Maps files"
echo
echo "-- Using $MAPEXTRACTOR"
echo "-- Copying extracted data to ${DATA_DIR}"
if [[ ! -d ${DATA_DIR} ]]
then
echo "-- Creating ${DATA_DIR}"
mkdir ${DATA_DIR}
fi
echo "-- Starting in 5 seconds"
sleep 5
cd ${CLIENT_DIR}
$MAPEXTRACTOR
echo "-- Extraction complete, copying dbc and maps files"
cp -r dbc maps ${DATA_DIR}
if [[ -d ${CLIENT_DIR}/Cameras ]]
then
echo "-- Camera files found, copying"
cp -r Cameras ${DATA_DIR}
fi
echo "-- Done"
echo
}
extract_vmaps() {
echo
echo "Extracting Visual Maps"
echo
echo "-- Using ${VMAP4EXTRACTOR}"
echo "-- Using ${VMAP4ASSEMBLER}"
echo "-- Copying extracted data to ${DATA_DIR}/vmaps"
echo "-- Starting in 5 seconds"
sleep 5
cd ${CLIENT_DIR}
$VMAP4EXTRACTOR
mkdir vmaps
$VMAP4ASSEMBLER Buildings vmaps
echo "-- Extraction complete, copying files"
cp -r vmaps ${DATA_DIR}
echo "-- Done"
echo
}
extract_mmaps() {
echo
echo "Extracting Movement Maps (this may take a while)"
echo
echo "-- Using ${MMAPS_GENERATOR}"
echo "-- Copying extracted data to ${DATA_DIR}/mmaps"
echo "-- Starting in 5 seconds"
sleep 5
cd ${CLIENT_DIR}
mkdir mmaps
$MMAPS_GENERATOR
echo "-- Extraction complete, copying files"
cp -r mmaps ${DATA_DIR}
echo "-- Done"
echo
}
clean_client() {
echo
echo "Cleaning up extracted client files (copied server files are not removed)"
echo
echo "Deleting the following directories from ${CLIENT_DIR}"
echo "-- Buildings, Cameras, dbc, maps, mmaps, vmaps"
echo
echo "Enter y to continue or anything else to cancel"
read a
if [[ ${a} = "y" ]]
then
cd ${CLIENT_DIR}
rm -fr Buildings Cameras dbc maps mmaps vmaps
echo "Done"
fi
}
show_menu() {
PS3='Enter choice: '
options=("Extract DBC and Maps files" "Extract Visual Maps (VMaps)" "Extract Movement Maps (MMaps)"
"Extract all files" "Clean up client" "Quit")
select opt in "${options[@]}"
do
case $opt in
"Extract DBC and Maps files")
extract_dbc_maps
show_header
;;
"Extract Visual Maps (VMaps)")
extract_vmaps
show_header
;;
"Extract Movement Maps (MMaps)")
extract_mmaps
show_header
;;
"Extract all files")
extract_dbc_maps
extract_vmaps
extract_mmaps
echo "All files extracted"
break
;;
"Clean up client")
clean_client
;;
"Quit")
echo
break
;;
*) echo "$REPLY is not a valid option";;
esac
done
}
show_header
check_files
show_menu
|