server/gamefiles/locale/english/map/find_map.sh

38 lines
1.0 KiB
Bash

#!/bin/bash
printf "%-32s %8s %8s %8s %8s\n" Map X Y Width Height
echo "---------------------------------------------------------------------"
for map in $(cat index|sort|awk '{print $2}')
do
while read line
do
data=(${line})
case ${data[0]} in
BasePosition )
x=$(bc <<< "${data[1]}/100")
y=$(bc <<< "${data[2]}/100")
;;
MapSize )
w=$(bc <<< "${data[1]}*256")
h=$(bc <<< "${data[2]}*256")
;;
esac
done<<_EOD_
$(egrep "(BasePosition|MapSize)" ${map}/Setting.txt)
_EOD_
printf "%-32s: %8d %8d %8d %8d\n" ${map} ${x} ${y} ${w} ${h}
if [[ ${1} != "" && ${2} != "" ]]; then
searchmap=1
if [[ ${1} -ge ${x} && ${1} -le $(bc <<< "${x}+${w}") && ${2} -ge ${y} && ${2} -le $(bc <<< "${y}+${h}") ]]; then
foundmap="${map}"
fi
fi
done
if [[ ${searchmap} == 1 ]]; then
if [[ ${foundmap} != "" ]]; then
echo -e "\n\n# Coordinates are in the map ${foundmap}\n"
else
echo -e "\n\n# Coordinates are not on any map\n"
fi
fi