mirror of
https://ceregatti.org/git/daniel/dayzdockerserver.git
synced 2025-05-06 14:21:18 +00:00
Add support for custom integrations. The first is no food, which makes a new types.xml of all the food class items for use with CE, then sets nominal to 0 in all entries.
Have server logs go into a logs directory, with sub-directories in there with the date to contain that run's logs. Fix XML handling output. Update bogus DayZ version. Add custom integration docs.
This commit is contained in:
parent
371d6d2b38
commit
9513fc4d97
4 changed files with 77 additions and 5 deletions
|
@ -35,9 +35,9 @@ do
|
|||
if [ -f ${OUT} ]
|
||||
then
|
||||
xmllint --noout ${OUT} 2> /dev/null && (
|
||||
echo -e "${green}${OUT}.xml passes XML lint test!${default}"
|
||||
echo -e "${green}${OUT} passes XML lint test!${default}"
|
||||
) || (
|
||||
echo -e "${yellow}${OUT}.xml does not pass XML lint test!${default}"
|
||||
echo -e "${yellow}${OUT} does not pass XML lint test!${default}"
|
||||
)
|
||||
fi
|
||||
done
|
||||
|
|
|
@ -2,6 +2,35 @@
|
|||
|
||||
## These are the custom integrations possible with dayzdockerserver
|
||||
|
||||
### Lowered login/logout time
|
||||
|
||||
To lower the login/logout time from the default 15 seconds.
|
||||
|
||||
Go into the server container:
|
||||
|
||||
```shell
|
||||
docker compose exec server bash
|
||||
```
|
||||
|
||||
Make a new directory in /profiles/custom called login and go into it:
|
||||
|
||||
```shell
|
||||
mkdir -p /profiles/custom/login
|
||||
cd /profiles/custom/login
|
||||
```
|
||||
|
||||
Generate a globals.xml with the changed values:
|
||||
|
||||
```shell
|
||||
cat > globals.xml << EOF
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<variables>
|
||||
<var name="TimeLogin" type="0" value="1"/>
|
||||
<var name="TimeLogout" type="0" value="1"/>
|
||||
</variables>
|
||||
EOF
|
||||
```
|
||||
|
||||
### No food
|
||||
|
||||
For a more survival-oriented experience, one can prevent food from spawning in the world, forcing players to hunt and fish for food.
|
||||
|
@ -26,12 +55,17 @@ xmlstarlet ed \
|
|||
-s / -t elem -n food \
|
||||
-m "/types/type[category[contains(@name, 'food')]]" "/food" \
|
||||
-d /types \
|
||||
-r /food -v /types \
|
||||
-r food -v types \
|
||||
-u //nominal -v 0 \
|
||||
/serverfiles/mpmissions/dayzOffline.chernarusplus/db/types.xml \
|
||||
> types.xml
|
||||
```
|
||||
|
||||
Always lint any XML file that is created/merged:
|
||||
```shell
|
||||
xmllint --noout types.xml
|
||||
```
|
||||
|
||||
Explanation:
|
||||
* Start xmlstarlet in edit mode
|
||||
* Add a new XML node at the root named "food"
|
||||
|
|
|
@ -127,7 +127,7 @@ report() {
|
|||
echo
|
||||
echo -e "========================================== End log ======================================${default}"
|
||||
# Back these files up into a new directory with the current time stamp in the name
|
||||
DIR="${SERVER_PROFILE}/logs-$(date +%Y-%m-%d-%H-%M-%S)"
|
||||
DIR="${SERVER_PROFILE}/logs/$(date +%Y-%m-%d-%H-%M-%S)"
|
||||
mkdir -p ${DIR}
|
||||
cd ${SERVER_PROFILE}
|
||||
mv -v *.log *.RPT *.mdmp ${DIR} 2> /dev/null
|
||||
|
@ -199,6 +199,44 @@ mergexml(){
|
|||
fi
|
||||
done
|
||||
done
|
||||
if [ -d ${SERVER_PROFILE}/custom ]
|
||||
then
|
||||
# First, remove any existing files, via the custom_ prefix
|
||||
rm -rf ${MPMISSIONS}/${MAP}/custom_*
|
||||
for dir in $(ls ${SERVER_PROFILE}/custom 2> /dev/null)
|
||||
do
|
||||
FOUND=0
|
||||
C=""
|
||||
for i in "CFGSPAWNABLETYPES:spawnabletypes:type" "EVENTS:events:event" "TYPES:types:type" "GLOBALS:globals:var"
|
||||
do
|
||||
var=$(echo ${i} | cut -d: -f1)
|
||||
CHECK=$(echo ${i} | cut -d: -f2)
|
||||
CHILD=$(echo ${i} | cut -d: -f3)
|
||||
if [ -f "${SERVER_PROFILE}/custom/${dir}/${var,,}.xml" ]
|
||||
then
|
||||
if [[ ${FOUND} = 0 ]]
|
||||
then
|
||||
echo
|
||||
echo -e "${green}Adding custom integration ${dir}${default}"
|
||||
FOUND=1
|
||||
fi
|
||||
mkdir -p ${MPMISSIONS}/${MAP}/custom_${dir}
|
||||
echo -n "Copy "
|
||||
cp -v ${SERVER_PROFILE}/custom/${dir}/${var,,}.xml ${MPMISSIONS}/${MAP}/custom_${dir}/${var,,}.xml
|
||||
C+="-s / -t elem -n file -a /file -t attr -n name -v ${var,,}.xml -a /file -t attr -n type -v ${CHECK} -m /file /ce "
|
||||
fi
|
||||
done
|
||||
if [[ ${C} != "" ]]
|
||||
then
|
||||
# Merge into the current mpmissions file
|
||||
echo "Create new XML node <ce folder=\"custom_${dir}\"> -> ${MPMISSIONS}/${MAP}/cfgeconomycore.xml"
|
||||
find ${MPMISSIONS}/${MAP} -name cfgeconomycore.xml -exec \
|
||||
xmlstarlet ed -L -s / -t elem -n ce \
|
||||
-a /ce -t attr -n folder -v "custom_${dir}" ${C} \
|
||||
-m /ce /economycore {} \;
|
||||
fi
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
# Start the server in the foreground
|
||||
|
|
|
@ -122,7 +122,7 @@ const config = {
|
|||
|
||||
const getVersion = (installed) => {
|
||||
if(installed) {
|
||||
return "1.21.bogus"
|
||||
return "1.22.bogus"
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue