#!/bin/bash eval prName="${0##*/}" if [ "$prName" != "pal.sh" ] then echo -e "\033[91m[注意] 禁止修改脚本文件名!已自动还原为:\"pal.sh\" .$Hss" sudo mv "$prName" "pal.sh" sleep 3 fi jbversion='0107.' #B站ID:初澈er 交流群:177781808 if [[ $(grep -c "CHUCHEER" /etc/passwd) < 1 ]] then sudo useradd -m -N CHUCHEER fi #-------------------------------------------------------------------------------------------常规变量定义 dividing="================================================================================" commandPath="$HOME/steamcmd/" commandFile="./steamcmd.sh" commandFile2="steamcmd.sh" games="/home/CHUCHEER/Steam/steamapps/common/PalServer" pzclj="$games"/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini cdwjl="/home/CHUCHEER/Steam/steamapps/common/PalServer/Pal/Saved/SaveGames/0" rtK="/home/CHUCHEER/Steam/steamapps/common/PalServer/Pal/Saved/SaveGames/" if [ ! -e "$HOME"/config.conf ] then echo "YUGENX" > "$HOME"/config.conf fi jbgxlj="CHUCHEER" hqversion=$(cat "$HOME"/config.conf | grep -e 'YUGENX' | tr -cd '[0-9]' ) if [[ -z "$hqversion" ]] then if [[ ! $(curl -o /dev/null -s -w %{http_code} https://gitee.com/CHUCHEER/) = 200 ]] then jbgxlj="CHUCHE0714" fi fi sed -i "/YUGENX/c\YUGENX=$(curl -s "https://gitee.com/$jbgxlj/script/tree/pl/" | grep -e 'pal_version' | grep 'new_filename' | tr -cd '[0-9][.]' )" "$HOME"/config.conf & #-------------------------------------------------------------------------------------------依赖安装 function SystemPreps() { echo -e "$Hs[提示] 安装运行库...$Hss" #sudo add-apt-repository multiverse 2>/dev/null sudo dpkg --add-architecture i386 2>/dev/null sudo apt -y update 2>/dev/null sudo apt-get -y install tar 2>/dev/null sudo apt-get -y install wget 2>/dev/null sudo apt-get -y install curl 2>/dev/null sudo apt-get -y install nc sudo apt-get -y install screen 2>/dev/null sudo apt-get -y install unzip 2>/dev/null sudo apt-get -y install iputils-ping 2>/dev/null sudo apt-get -y install lsof 2>/dev/null sudo apt -y install lib32gcc-s1 2>/dev/null sudo apt -y install lib64gcc-s1 2>/dev/null sudo apt-get -y install libstdc++6 libgcc1 libcurl4-gnutls-dev 2>/dev/null sudo apt-get -y install libstdc++6:i386 libgcc1:i386 libcurl4-gnutls-dev:i386 2>/dev/null sudo apt -y install libcurl4-openssl-dev 2>/dev/null sudo apt -y install lib32ncurses5 lib32z1 2>/dev/null if [[ -f "/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4" ]] then ln -sf /usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 /usr/lib/libcurl-gnutls.so.4 fi sudo yum -y install epel-release 2>/dev/null sudo yum -y update 2>/dev/null sudo yum -y install tar wget screen curl unzip lsof nc 2>/dev/null sudo yum -y install glibc.i686 libstdc++.i686 libcurl.i686 2>/dev/null sudo yum -y install glibc libstdc++ libcurl lib32gcc1 2>/dev/null sudo yum remove -y libcurl4 2>/dev/null sudo yum install -y libcurl4 curl 2>/dev/null if [[ -f "/usr/lib/libcurl.so.4" ]] then ln -sf /usr/lib/libcurl.so.4 /usr/lib/libcurl-gnutls.so.4 fi if [[ -f "/usr/lib64/libcurl.so.4" ]] then ln -sf /usr/lib64/libcurl.so.4 /usr/lib64/libcurl-gnutls.so.4 fi 1>/dev/null echo -e "$Hs[提示] 运行库准备就绪...$Hss" echo "$dividing" } #-------------------------------------------------------------------------------------------设置虚拟内存 function Openswap() { #neicss="$(cat /proc/meminfo | grep "MemTotal" | awk '{print $2/1024/1024}' | awk -F . '{print $1}')" #xifasda="KERNEL=="zram0",ATTR{disksize}=\""$neicss"G\",TAG+="systemd"" #echo "$xifasda" > /etc/udev/rules.d/99-zram.rules echo -e "$Hs[提示] 设置虚拟内存中,请勿操作,耐心等待.$Hss" mnkd=$(echo $pajmkhra9rde | awk '{print $1*1024}') dd if=/dev/zero of=/swapfile bs=1M count="$mnkd" mkswap /swapfile swapon /swapfile chmod 0646 /etc/fstab echo "/swapfile swap swap defaults 0 0" >> /etc/fstab echo -e "$Hs[提示] 已设置虚拟内存-$pajmkhra9rde G.$Hss" echo "$dividing" swapon -s } #-------------------------------------------------------------------------------------------安装steam function CommandPreps() { echo -e "$Hs[提示] 安装steam...$Hss" if [ ! -d "$commandPath" ] then mkdir "$commandPath" fi cd "$commandPath" wget -q --spider https://www.baidu.com:443 if [ ! $? -eq 0 ] then echo -e "\033[91m[注意] 端口443:错误!请检查防火墙/安全组:443端口是否放通!$Hss" echo -e "\033[91m[注意] 端口443:错误!请检查防火墙/安全组:443端口是否放通!$Hss" echo -e "\033[91m[注意] 端口443:错误!请检查防火墙/安全组:443端口是否放通!$Hss" else echo -e "$Hs[提示] 端口443:正常.$Hss" fi while [ ! -e "$commandPath"steamcmd_linux.tar.gz ] do echo -e "$Hs[提示] 下载steam安装包中...请等待20秒...$Hss" echo -e "$Hs[提示] 如下载缓慢!请按 ctrl+c 结束进程后,重新输入: ./pal.sh 回车!$Hss" wget -c https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz 1>/dev/null sleep 5 done if [ ! -e "$commandPath"steamcmd_linux.tar.gz ] then echo -e "\033[91m[注意] 未检测到steam安装包!重新尝试下载中...$Hss" CommandPreps else echo -e "$Hs[提示] steam安装包已下载...$Hss" fi tar -xvzf steamcmd_linux.tar.gz sleep 1 if [ ! -e "$commandPath"steamcmd.sh ] then echo -e "\033[91m[注意] 未检测到steamcmd文件!$Hss" tar -xvzf steamcmd_linux.tar.gz sleep 1 else echo -e "$Hs[提示] steamcmd文件:存在.$Hss" fi if [ ! -e "$commandPath"linux32/steamcmd ] then echo -e "\033[91m[注意] 未检测到linux32/steamcmd文件!$Hss" tar -xvzf steamcmd_linux.tar.gz sleep 1 else echo -e "$Hs[提示] "$commandPath"linux32/steamcmd文件:存在.$Hss" sudo chmod 777 "$commandPath"/linux32/steamcmd fi if [ ! -e "$commandPath"linux32/steamcmd ] then echo -e "\033[91m[注意] 未检测到"$commandPath"linux32/steamcmd文件!$Hss" CommandPreps sleep 1 else echo -e "$Hs[提示] "$commandPath"linux32/steamcmd文件:存在.$Hss" fi echo -e "$Hs[提示] 【本脚本完全免费,教程:https://www.bilibili.com/video/BV1xQ4y1c7hY】$Hss" echo -e "$Hs[提示] 开始下载安装steam! 请耐心等待...$Hss" sleep 1 if [ ! -e "$HOME"/screenlog.0 ] || [ ` cat "$HOME"/screenlog.0 | wc -c` -gt 0 ];then touch "$HOME"/screenlog.0 screen -L -dmS "PalServer0" echo "5...4...3...2...1...0" || sleep 3 fi echo "$dividing" } #-------------------------------------------------------------------------------------------启动游戏 function ServerStart() { if [ ! -d "/home/CHUCHEER/.steam/sdk64" ] then mkdir -p /home/CHUCHEER/.steam/sdk64/ echo -e "\033[91m[注意] 未找到steamclient.so! 开始安装...$Hss" cd "$commandPath" "$commandFile" +login anonymous +app_update 1007 +quit cd ~ sleep 1 cp ~/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so /home/CHUCHEER/.steam/sdk64/ else if [ ! -e "/home/CHUCHEER/.steam/sdk64/steamclient.so" ] then echo -e "\033[91m[注意] 未找到steamclient.so! 开始安装...$Hss" cd "$commandPath" "$commandFile" +login anonymous +app_update 1007 +quit cd ~ sleep 1 cp ~/Steam/steamapps/common/Steamworks\ SDK\ Redist/linux64/steamclient.so /home/CHUCHEER/.steam/sdk64/ fi fi #sudo rm "$HOME"/screenlog.0 #echo -e "$Hs[提示] 启动成功后,按 ctrl+a+d 返回脚本.$Hss" Ssscreen1 DXDK0=$(cat "$pzclj" | grep -o "PublicPort.*)" | awk -F'[,)]' '{print $1}' | tr -cd "[0-9]") if [ -z $DXDK0 ] then DXDK0=8211 fi sleep 1 screen -L -dmS "PalServer" sudo su - CHUCHEER -l -c ""$games"/./PalServer.sh -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS port="$DXDK0"" sleep 1 Serverzt } #-------------------------------------------------------------------------------------------启动状态 function Serverzt() { while [[ $(screen -ls | grep -c "PalServer") > 0 ]] do echo -e "$Hs[提示] "PalServer".启动中... 如长时间未启动成功请按ctrl c退出!$Hss" sleep 5 log=$(tail -n 15 "$HOME"/screenlog.0) echo -e "$Hs[提示] $log$Hss" fail1='port between 27015' fail='Sys_LoadModule failed to load' if [[ "$log" == *"$fail"* ]] then echo -e "\033[91m[注意] 检测到错误,尝试重启中...$Hss" ServerStart fi if [[ "$log" == *"$fail1"* ]] then echo -e "\033[91m[注意] 检测到错误,尝试重启中...$Hss" ServerStart fi sleep 1 if [[ $(tail -n 10 "$HOME"/screenlog.0 | grep -c "succeeded" ) > 2 ]] then echo "$dividing" echo -e "$Ls[提示] "PalServer" 启动成功!$Hss" IP="$(curl -s --connect-timeout 2 whatismyip.akamai.com)" if [ $? -ne 0 ] then IP="$(dig +short myip.opendns.com @resolver1.opendns.com)" fi DXDK0=$(cat "$pzclj" | grep -o "PublicPort.*)" | awk -F'[,)]' '{print $1}' | tr -cd "[0-9]") if [ -z $DXDK0 ] then DXDK0=8211 fi echo -e "$Hs[提示] 直连代码: "$IP":"$DXDK0"$Hss" if [ ` cat "$HOME"/screenlog.0 | wc -c` -gt 100000 ] then sudo rm "$HOME"/screenlog.0 fi chuche break fi if [ -z "$log" ] then echo -e "$Hs[提示] 未检测到启动状态,请连接或重启!" chuche break fi done if [[ $(screen -ls | grep -c "PalServer") = 0 ]] then echo -e "\033[91m[提示] 启动时意外关闭了!$Hss" chuche fi } #-------------------------------------------------------------------------------------------更新、安装游戏 function ServerPreps() { if [ -d "$commandPath" ] then if [ ! -e "$commandPath""$commandFile2" ] then echo -e "\033[91m[注意] 未找到steamcmd文件!重新安装...$Hss" CommandPreps fi else echo -e "\033[91m[注意] 未找到steamcmd文件夹!重新安装...$Hss" CommandPreps fi echo -e "$Hs[提示] 即将关闭所有进程并开始更新下载游戏,请等待成功提示. $Hss" sleep 1 echo -e "$Hs[提示] 如下载缓慢!可按ctrl+c结束进程后,重新执行脚本更新.$Hss" cd "$commandPath" "$commandFile" +force_install_dir "$games" +login anonymous +app_update 2394010 validate +quit if [ $? -ne 0 ] then echo -e "\033[91m[注意] 游戏版本更新失败! 尝试重新更新中...$Hss" sleep 3 cd if [ ! -d "$games" ] then echo -e "\033[91m[注意] 未检测到游戏文件夹! 尝试重新安装中...$Hss" echo -e "$Hs[提示] 如在此步骤一直循环,请尝试重装服务器系统...$Hss" echo -e "$Hs[提示] 腾讯云装 centos7.6, 阿里云和华为云装 Ubuntu18.04. $Hss" sleep 2 cd sudo rm -r steamcmd SystemPreps ServerPreps fi sleep 2 ServerPreps else echo -e "$Hs[提示] 游戏版本已下载更新完成!请启动房间!$Hss" sleep 1 sudo chmod 777 -R /home/CHUCHEER/Steam/steamapps/common fi } #-------------------------------------------------------------------------------------------更新、安装游戏 function ServerPrepsS() { echo -e "$Hs[提示] 即将关闭所有进程并开始更新下载游戏,请等待成功提示. $Hss" sleep 1 echo -e "$Hs[提示] 如下载缓慢!可按ctrl+c结束进程后,重新执行脚本更新.$Hss" Ssscreen1 #关闭所有进程 cd "$commandPath" "$commandFile" +force_install_dir "$games" +login anonymous +app_update 2394010 validate +quit if [ $? -ne 0 ] then echo -e "\033[91m[注意] 游戏版本更新失败! 尝试重新更新中...$Hss" sleep 3 "$commandFile" +force_install_dir "$games" +login anonymous +app_update 2394010 validate +quit else echo -e "$Hs[提示] 游戏版本更新下载完成,开始启动存档.$Hss" sudo chmod 777 -R /home/CHUCHEER/Steam/steamapps/common fi echo "$dividing" chuche 2>/dev/null } #-------------------------------------------------------------------------------------------查看进程 function Checkserver() { echo -e "$Hs[提示] 进程:$(screen -ls | grep "PalServer"|grep -v grep)$Hss" IP="$(curl -s --connect-timeout 2 whatismyip.akamai.com)" if [ $? -ne 0 ] then IP="$(dig +short myip.opendns.com @resolver1.opendns.com)" fi #DXDK0=$(cat "$pzclj" | grep -oP "(?<=PublicPort).*(?=PublicIP)" | tr -cd "[0-9]") DXDK0=$(cat "$pzclj" | grep -o "PublicPort.*)" | awk -F'[,)]' '{print $1}' | tr -cd "[0-9]") if [ -z $DXDK0 ] then DXDK0=8211 fi echo -e "$Hs[提示] 直连代码: "$IP":"$DXDK0"$Hss" chuche } #-------------------------------------------------------------------------------------------关闭进程 function Ssscreen() { if [[ $(screen -ls | grep -c "PalServer") > 0 ]] then screen -ls | grep "PalServer"|grep -v grep|awk -F '[ .]+' '{print "screen -X -S"$1" quit"}'|sh fi if [[ $(lsof -i:27015 | grep -c "PalServer") > 0 ]];then PIDD=$(lsof -i:27015 | awk '{print $2}' | tr -cd "[0-9]") sudo kill $PIDD 2>/dev/null sleep 3 PIDD1=$(lsof -i:8211 | awk '{print $2}' | tr -cd "[0-9]") sudo kill $PIDD1 2>/dev/null sleep 1 killall -u CHUCHEER 2>/dev/null echo -e "$Hs[提示] 已关闭服务器房间!$Hss" else echo -e "$Hs[提示] 未检测到进程!$Hss" fi chuche } #-------------------------------------------------------------------------------------------自动关闭进程 function Ssscreen1() { if [[ $(screen -ls | grep -c "PalServer") > 0 ]] then echo -e "$Hs[提示] 检测到房间运行中,即将自动关闭!$Hss" screen -ls | grep "PalServer"|grep -v grep|awk -F '[ .]+' '{print "screen -X -S"$1" quit"}'|sh fi if [[ $(lsof -u CHUCHEER | grep -c "PalServer") > 0 ]];then PIDD=$(lsof -i:27015 | awk '{print $2}' | tr -cd "[0-9]") sudo kill $PIDD 2>/dev/null sleep 3 PIDD1=$(lsof -i:8211 | awk '{print $2}' | tr -cd "[0-9]") sudo kill $PIDD1 2>/dev/null sleep 1 killall -u CHUCHEER 2>/dev/null echo -e "$Hs[提示] 已关闭服务器房间!$Hss" fi } #-------------------------------------------------------------------------------------------备份 function FilesBackup() { cd "$rtK" if [ -d "$rtK"0 ] then echo -e "$Ls[指令] 给备份文件加上自定义标签名称,开始备份!$Hss" read -p "输入: " BIAOQIAN echo -e "$Hs[提示] 正在备份...请稍等!$Hss" sudo tar -zcf "$rtK""$BIAOQIAN".tar.gz 0 else echo -e "\033[91m[注意] 备份失败!未找到存档文件夹:0.$Hss" FilesBackup fi sleep 2 if [ ! -e "$rtK""$BIAOQIAN".tar.gz ] then sudo tar -zcf "$rtK""$BIAOQIAN".tar.gz 0 else echo -e "$Hs[提示] 存档: 0 已备份成功!$Hss" echo -e "$Hs[提示] 备份文件路径:"$rtK""$BIAOQIAN".tar.gz$Hss" fi cd "../" chuche } #-------------------------------------------------------------------------------------------恢复 function Recovery1() { Ssscreen1 #检测进程 cd "$rtK" bfwemnjianls=$(ls *.tar.gz ) #备份文件目录 if [ "$bfwemnjianls" = "" ] then echo -e "$Hs[提示] 未检索到备份文件目录,请自行查找.$Hss" else echo -e "$Hs[提示] 备份文件目录:$Hss" echo "$bfwemnjianls" echo -e "$Ls$dividing$Hss" fi cd "$rtK" echo -e "$Ls[指令] 输入备份文件的自定义标签名称,开始恢复!$Hss" read -p "输入: " BIAOQIAN1 if [ -e "$BIAOQIAN1".tar.gz ] then echo -e "$Hs[提示] 检测该标签备份文件存在!$Hss" if [ -d 0 ] then echo -e "$Hs[提示] 正在删除原存档!$Hss" sudo rm -r 0 fi echo -e "$Hs[提示] 正在恢复...请稍等!$Hss" sudo tar -zxf "$BIAOQIAN1".tar.gz 0 echo -e "$Hs[提示] 存档已恢复成功!$Hss" else echo -e "\033[91m[注意] 备份文件: "$BIAOQIAN1".tar.gz 未找到! 请重新输入!$Hss" Recovery1 fi cd "../" chuche } #-------------------------------------------------------------------------------------------修改 function xiugaiwenjian() { if [ ! -e "$games"/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini ] then mkdir -p /home/CHUCHEER/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/ touch "$games"/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini fi if [ ` cat "$games"/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini | wc -c` -le 10 ] then mobanww=$(cat /home/CHUCHEER/Steam/steamapps/common/PalServer/DefaultPalWorldSettings.ini) echo "$mobanww" > "$games"/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini fi pzclj="$games"/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini #DXDK0=$(cat "$pzclj" | grep -o "AdminPassword.*)" | awk -F'[,)]' '{print $1}') #echo $DXDK0 #sed -i "s/$DXDK0/新的字串/g" Ssscreen1 #自动关闭存档 echo "$dividing" echo -e "$Ls[指令] [0.返回菜单] [91.加载默认] $Hss" echo -e "$Ls[指令] [1.人数] [2.房名] [3.简介] $Hss" echo -e "$Ls[指令] [4.密码] [5.难度] [6.PVP]$Hss" echo -e "$Ls[指令] [7.端口] [8.管理] [9.死惩]$Hss" echo "$dividing" echo -e "$Ls[指令] [10.捕获概率] [11.帕鲁刷新] $Hss" echo -e "$Ls[指令] [12.帕鲁伤害] [13.帕鲁防御] $Hss" echo -e "$Ls[指令] [14.玩家伤害] [15.玩家防御] $Hss" echo -e "$Ls[指令] [16.玩家饥饿] [17.玩家体力] $Hss" echo -e "$Ls[指令] [18.玩家血量] [19.玩睡血量] $Hss" echo -e "$Ls[指令] [20.帕鲁饥饿] [21.帕鲁体力] $Hss" echo -e "$Ls[指令] [22.帕鲁血量] [23.帕睡血量] $Hss" echo -e "$Ls[指令] [24.孵化时间] [25.帕鲁上限] $Hss" echo "$dividing" echo -e "$Ls[指令] [26.白天流逝] [27.夜间流逝] $Hss" echo -e "$Ls[指令] [28.经验倍率] [29.工作倍率] $Hss" echo -e "$Ls[指令] [30.建筑受损] [31.建筑劣损] $Hss" echo -e "$Ls[指令] [32.采集刷新] [33.采集概率] $Hss" echo -e "$Ls[指令] [34.采集生命] [35.敌对掉落] $Hss" echo -e "$Ls[指令] [36.允许友伤] [37.允许入侵] $Hss" #sed -i "/ServerPlayerMaxNum/c\ServerPlayerMaxNum=$RS," $pzclj read -p "输入: " para999 case $para999 in 1) echo "$dividing" yxpz1 DXDK0=$(cat "$pzclj" | grep -o "ServerPlayerMaxNum.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/ServerPlayerMaxNum=$blL1/g" $pzclj ;; 2) echo "$dividing" yxpz2 DXDK0=$(cat "$pzclj" | grep -o "ServerName.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/ServerName=\"$blL2\"/g" $pzclj ;; 3) echo "$dividing" yxpz3 DXDK0=$(cat "$pzclj" | grep -o "ServerDescription.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/ServerDescription=\"$blL3\"/g" $pzclj ;; 4) echo "$dividing" yxpz4 DXDK0=$(cat "$pzclj" | grep -o "ServerPassword.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/ServerPassword=\"$blL4\"/g" $pzclj ;; 5) echo "$dividing" yxpz5 DXDK0=$(cat "$pzclj" | grep -o "Difficulty.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/Difficulty=$blL5/g" $pzclj ;; 6) echo "$dividing" yxpz6 DXDK0=$(cat "$pzclj" | grep -o "bIsPvP.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/bIsPvP=$blL6/g" $pzclj ;; 7) echo "$dividing" yxpz7 DXDK0=$(cat "$pzclj" | grep -o "PublicPort.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PublicPort=$blL7/g" $pzclj ;; 8) echo "$dividing" yxpz8 DXDK0=$(cat "$pzclj" | grep -o "AdminPassword.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/AdminPassword=\"$blL8\"/g" $pzclj ;; 9) echo "$dividing" yxpz9 DXDK0=$(cat "$pzclj" | grep -o "DeathPenalty.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/DeathPenalty=$blL9/g" $pzclj ;; 10) echo "$dividing" yxpz10 DXDK0=$(cat "$pzclj" | grep -o "PalCaptureRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PalCaptureRate=$blL10/g" $pzclj ;; 11) echo "$dividing" yxpz11 DXDK0=$(cat "$pzclj" | grep -o "PalSpawnNumRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PalSpawnNumRate=$blL11/g" $pzclj ;; 12) echo "$dividing" yxpz12 DXDK0=$(cat "$pzclj" | grep -o "PalDamageRateAttack.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PalDamageRateAttack=$blL12/g" $pzclj ;; 13) echo "$dividing" yxpz13 DXDK0=$(cat "$pzclj" | grep -o "PalDamageRateDefense.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PalDamageRateDefense=$blL13/g" $pzclj ;; 14) echo "$dividing" yxpz14 DXDK0=$(cat "$pzclj" | grep -o "PlayerDamageRateAttack.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PlayerDamageRateAttack=$blL14/g" $pzclj ;; 15) echo "$dividing" yxpz15 DXDK0=$(cat "$pzclj" | grep -o "PlayerDamageRateDefense.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PlayerDamageRateDefense=$blL15/g" $pzclj ;; 16) echo "$dividing" yxpz16 DXDK0=$(cat "$pzclj" | grep -o "PlayerStomachDecreaceRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PlayerStomachDecreaceRate=$blL16/g" $pzclj ;; 17) echo "$dividing" yxpz17 DXDK0=$(cat "$pzclj" | grep -o "PlayerStaminaDecreaceRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PlayerStaminaDecreaceRate=$blL17/g" $pzclj ;; 18) echo "$dividing" yxpz18 DXDK0=$(cat "$pzclj" | grep -o "PlayerAutoHPRegeneRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PlayerAutoHPRegeneRate=$blL18/g" $pzclj ;; 19) echo "$dividing" yxpz19 DXDK0=$(cat "$pzclj" | grep -o "PlayerAutoHpRegeneRateInSleep.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PlayerAutoHpRegeneRateInSleep=$blL19/g" $pzclj ;; 20) echo "$dividing" yxpz20 DXDK0=$(cat "$pzclj" | grep -o "PalStomachDecreaceRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PalStomachDecreaceRate=$blL20/g" $pzclj ;; 21) echo "$dividing" yxpz21 DXDK0=$(cat "$pzclj" | grep -o "PalStaminaDecreaceRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PalStaminaDecreaceRate=$blL21/g" $pzclj ;; 22) echo "$dividing" yxpz22 DXDK0=$(cat "$pzclj" | grep -o "PalAutoHPRegeneRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PalAutoHPRegeneRate=$blL22/g" $pzclj ;; 23) echo "$dividing" yxpz23 DXDK0=$(cat "$pzclj" | grep -o "PalAutoHpRegeneRateInSleep.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PalAutoHpRegeneRateInSleep=$blL23/g" $pzclj ;; 24) echo "$dividing" yxpz24 DXDK0=$(cat "$pzclj" | grep -o "PalEggDefaultHatchingTime.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/PalEggDefaultHatchingTime=$blL24/g" $pzclj ;; 25) echo "$dividing" yxpz25 DXDK0=$(cat "$pzclj" | grep -o "BaseCampWorkerMaxNum.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/BaseCampWorkerMaxNum=$blL25/g" $pzclj ;; 26) echo "$dividing" yxpz26 DXDK0=$(cat "$pzclj" | grep -o "DayTimeSpeedRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/DayTimeSpeedRate=$blL26/g" $pzclj ;; 27) echo "$dividing" yxpz27 DXDK0=$(cat "$pzclj" | grep -o "NightTimeSpeedRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/NightTimeSpeedRate=$blL27/g" $pzclj ;; 28) echo "$dividing" yxpz28 DXDK0=$(cat "$pzclj" | grep -o "ExpRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/ExpRate=$blL28/g" $pzclj ;; 29) echo "$dividing" yxpz29 DXDK0=$(cat "$pzclj" | grep -o "WorkSpeedRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/WorkSpeedRate=$blL29/g" $pzclj ;; 30) echo "$dividing" yxpz30 DXDK0=$(cat "$pzclj" | grep -o "BuildObjectDamageRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/BuildObjectDamageRate=$blL30/g" $pzclj ;; 31) echo "$dividing" yxpz31 DXDK0=$(cat "$pzclj" | grep -o "BuildObjectDeteriorationDamageRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/BuildObjectDeteriorationDamageRate=$blL31/g" $pzclj ;; 32) echo "$dividing" yxpz32 DXDK0=$(cat "$pzclj" | grep -o "CollectionObjectRespawnSpeedRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/CollectionObjectRespawnSpeedRate=$blL32/g" $pzclj ;; 33) echo "$dividing" yxpz33 DXDK0=$(cat "$pzclj" | grep -o "CollectionDropRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/CollectionDropRate=$blL33/g" $pzclj ;; 34) echo "$dividing" yxpz34 DXDK0=$(cat "$pzclj" | grep -o "CollectionObjectHpRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/CollectionObjectHpRate=$blL34/g" $pzclj ;; 35) echo "$dividing" yxpz35 DXDK0=$(cat "$pzclj" | grep -o "EnemyDropItemRate.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/EnemyDropItemRate=$blL35/g" $pzclj ;; 36) echo "$dividing" yxpz36 DXDK0=$(cat "$pzclj" | grep -o "bEnableFriendlyFire.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/bEnableFriendlyFire=$blL36/g" $pzclj ;; 37) echo "$dividing" yxpz37 DXDK0=$(cat "$pzclj" | grep -o "bEnableInvaderEnemy.*)" | awk -F'[,)]' '{print $1}') sed -i "s/$DXDK0/bEnableInvaderEnemy=$blL37/g" $pzclj ;; 0) echo -e "$Hs[提示] 已退出修改,请重启房间更新设置!$Hss" chuche ;; 91) echo "$dividing" mobanww=$(cat /home/CHUCHEER/Steam/steamapps/common/PalServer/DefaultPalWorldSettings.ini) echo "$mobanww" > "$games"/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini echo -e "$Hs[提示] 已加载默认设置!$Hss" ;; *) echo -e "\033[91m[注意] 命令有误,请重新输入!$Hss" xiugaiwenjian;; esac xiugaiwenjian } function yxpz1() { echo -e "$Ls[指令] [ 设置房间的总人数上限. ]$Hss" read -p "输入2~32: " para1 if [ $para1 -ge 2 -a $para1 -le 32 ] then blL1="$para1" echo -e "$Hs[提示] 已设置:人数上限-"$blL1"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz1 fi } function yxpz2() { echo -e "$Ls[指令] [ 设置房间的名字. ]$Hss" read -p "输入名称: " para2 blL2="$para2" echo -e "$Hs[提示] 已设置:名称-"$blL2"!$Hss" } function yxpz3() { echo -e "$Ls[指令] [ 设置服务器的简介.不设置简介按回车跳过! ]$Hss" read -p "输入简介: " para3 blL3="$para3" echo -e "$Hs[提示] 已设置:简介:"$blL3"!$Hss" } function yxpz4() { echo -e "$Ls[指令] [ 设置服务器的密码.不设置密码按回车跳过! ]$Hss" read -p "输入密码: " para4 blL4="$para4" echo -e "$Hs[提示] 已设置:密码:"$blL4"!$Hss" } function yxpz5() { echo -e "$Ls[指令] [ 设置游戏模式:[1.默认] [2.普通] [3.困难] ]$Hss" read -p "输入: " para5 case $para5 in 1) blL5="None" ;; 2) blL5="Easy" ;; 3) blL5="Difficulty" ;; *) echo -e "\033[91m[注意] 命令有误,请重新输入!$Hss" yxpz5;; esac echo -e "$Hs[提示] 已设置:游戏难度:"$blL5"!$Hss" } function yxpz6() { echo -e "$Ls[指令] [ 互相伤害:[1.开] [2.关] ]$Hss" read -p "输入: " para6 case $para6 in 1) blL6=True ;; 2) blL6=False ;; *) echo -e "\033[91m[注意] 命令有误,请重新输入!$Hss" yxpz6;; esac echo -e "$Hs[提示] 已设置:pvp:"$blL6"!$Hss" } function yxpz7() { echo -e "$Ls[指令] [ 设置服务器的端口.默认8211! ]$Hss" echo -e "$Ls[指令] [ 注意服务器是否放通该端口!]$Hss" read -p "输入密码: " para7 blL7="$para7" echo -e "$Hs[提示] 已设置:端口:"$blL7"!$Hss" echo -e "$Ls[提示] 请注意服务器防火墙是否放通!]$Hss" } function yxpz8() { echo -e "$Ls[指令] [ 设置管理员的密码.不设置密码按回车跳过! ]$Hss" read -p "输入密码: " para8 blL8="$para8" echo -e "$Hs[提示] 已设置:管理密码:"$blL8"!$Hss" } function yxpz9() { echo -e "$Ls[指令] [ 设置死亡掉落:[1.无] [2.物品] [3.物品+装备] [4.全部] ]$Hss" read -p "输入: " para9 case $para9 in 1) blL9="None" ;; 2) blL9="Item" ;; 3) blL9="ItemAndEquipment" ;; 4) blL9="All" ;; *) echo -e "\033[91m[注意] 命令有误,请重新输入!$Hss" yxpz9;; esac echo -e "$Hs[提示] 已设置:死亡惩罚:"$blL9"!$Hss" } function yxpz10() { echo -e "$Ls[指令] [ 设置帕鲁捕获几率倍率. ]$Hss" read -p "输入0.5~2: " para10 if (( $(echo "$para10 > 0.4" | bc) )) && (( $(echo "$para10 < 2.1" | bc) )) then blL10="$para10" echo -e "$Hs[提示] 已设置:捕获倍率:"$blL10"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz10 fi } function yxpz11() { echo -e "$Ls[指令] [ 设置帕鲁刷新倍率. ]$Hss" read -p "输入0.5~3: " para11 if (( $(echo "$para11 > 0.4" | bc) )) && (( $(echo "$para11 < 3.1" | bc) )) then blL11="$para11" echo -e "$Hs[提示] 已设置:刷新倍率:"$blL11"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz11 fi } function yxpz12() { echo -e "$Ls[指令] [ 设置帕鲁攻击伤害倍率. ]$Hss" read -p "输入0.1~5: " para12 if (( $(echo "$para12 > 0" | bc) )) && (( $(echo "$para12 < 5.1" | bc) )) then blL12="$para12" echo -e "$Hs[提示] 已设置:伤害倍率:"$blL12"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz12 fi } function yxpz13() { echo -e "$Ls[指令] [ 设置帕鲁捕获几率倍率. ]$Hss" read -p "输入0.1~5: " para13 if (( $(echo "$para13 > 0" | bc) )) && (( $(echo "$para13 < 5.1" | bc) )) then blL13="$para13" echo -e "$Hs[提示] 已设置:捕获几率倍率:"$blL13"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz13 fi } function yxpz14() { echo -e "$Ls[指令] [ 设置玩家攻击伤害倍率. ]$Hss" read -p "输入0.1~5: " para14 if (( $(echo "$para14 > 0" | bc) )) && (( $(echo "$para14 < 5.1" | bc) )) then blL14="$para14" echo -e "$Hs[提示] 已设置:伤害倍率:"$blL14"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz14 fi } function yxpz15() { echo -e "$Ls[指令] [ 设置玩家防御减伤倍率. ]$Hss" read -p "输入0.1~5: " para15 if (( $(echo "$para15 > 0" | bc) )) && (( $(echo "$para15 < 5.1" | bc) )) then blL15="$para15" echo -e "$Hs[提示] 已设置:减伤倍率:"$blL15"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz15 fi } function yxpz16() { echo -e "$Ls[指令] [ 设置玩家饥饿下降倍率. ]$Hss" read -p "输入0.1~5: " para16 if (( $(echo "$para16 > 0" | bc) )) && (( $(echo "$para16 < 5.1" | bc) )) then blL16="$para16" echo -e "$Hs[提示] 已设置:下降倍率:"$blL16"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz16 fi } function yxpz17() { echo -e "$Ls[指令] [ 设置玩家体力下降倍率. ]$Hss" read -p "输入0.1~5: " para17 if (( $(echo "$para17 > 0" | bc) )) && (( $(echo "$para17 < 5.1" | bc) )) then blL17="$para17" echo -e "$Hs[提示] 已设置:体力倍率:"$blL17"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz17 fi } function yxpz18() { echo -e "$Ls[指令] [ 设置玩家血量回复倍率. ]$Hss" read -p "输入0.1~5: " para18 if (( $(echo "$para18 > 0" | bc) )) && (( $(echo "$para18 < 5.1" | bc) )) then blL18="$para18" echo -e "$Hs[提示] 已设置:回复倍率:"$blL18"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz18 fi } function yxpz19() { echo -e "$Ls[指令] [ 设置玩家睡眠时血量回复倍率. ]$Hss" read -p "输入0.1~5: " para19 if (( $(echo "$para19 > 0" | bc) )) && (( $(echo "$para19 < 5.1" | bc) )) then blL19="$para19" echo -e "$Hs[提示] 已设置:睡眠时回复倍率:"$blL19"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz19 fi } function yxpz20() { echo -e "$Ls[指令] [ 设置帕鲁饥饿下降倍率. ]$Hss" read -p "输入0.1~5: " para20 if (( $(echo "$para20 > 0" | bc) )) && (( $(echo "$para20 < 5.1" | bc) )) then blL20="$para20" echo -e "$Hs[提示] 已设置:下降倍率:"$blL20"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz20 fi } function yxpz21() { echo -e "$Ls[指令] [ 设置帕鲁体力下降倍率. ]$Hss" read -p "输入0.1~5: " para21 if (( $(echo "$para21 > 0" | bc) )) && (( $(echo "$para21 < 5.1" | bc) )) then blL21="$para21" echo -e "$Hs[提示] 已设置:下降倍率:"$blL21"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz21 fi } function yxpz22() { echo -e "$Ls[指令] [ 设置帕鲁血量回复倍率. ]$Hss" read -p "输入0.1~5: " para22 if (( $(echo "$para22 > 0" | bc) )) && (( $(echo "$para22 < 5.1" | bc) )) then blL22="$para22" echo -e "$Hs[提示] 已设置:回复倍率:"$blL22"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz22 fi } function yxpz23() { echo -e "$Ls[指令] [ 设置帕鲁睡眠时血量回复倍率. ]$Hss" read -p "输入0.1~5: " para23 if (( $(echo "$para23 > 0" | bc) )) && (( $(echo "$para23 < 5.1" | bc) )) then blL23="$para23" echo -e "$Hs[提示] 已设置:睡眠时回复倍率:"$blL23"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz23 fi } function yxpz24() { echo -e "$Ls[指令] [ 设置蛋孵化时间-小时. ]$Hss" read -p "输入0~240: " para24 if (( $(echo "$para24 < 240.1" | bc) )) then blL24="$para24" echo -e "$Hs[提示] 已设置:孵化时间:"$blL24"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz24 fi } function yxpz25() { echo -e "$Ls[指令] [ 设置工作中帕鲁上限. ]$Hss" echo -e "$Ls[指令] [ 此设置服务器暂无法生效,请自行百度方法. ]$Hss" read -p "输入0.1~20: " para25 if (( $(echo "$para25 > 0" | bc) )) && (( $(echo "$para25 < 21" | bc) )) then blL25="$para25" echo -e "$Hs[提示] 已设置:工作上限:"$blL25"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz25 fi } function yxpz26() { echo -e "$Ls[指令] [ 设置白天流逝速度. ]$Hss" read -p "输入0.1~5: " para26 if (( $(echo "$para26 > 0" | bc) )) && (( $(echo "$para26 < 5.1" | bc) )) then blL26="$para26" echo -e "$Hs[提示] 已设置:流逝速度:"$blL26"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz26 fi } function yxpz27() { echo -e "$Ls[指令] [ 设置夜间流逝速度. ]$Hss" read -p "输入0.1~5: " para27 if (( $(echo "$para27 > 0" | bc) )) && (( $(echo "$para27 < 5.1" | bc) )) then blL27="$para27" echo -e "$Hs[提示] 已设置:流逝速度:"$blL27"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz27 fi } function yxpz28() { echo -e "$Ls[指令] [ 设置经验值倍率. ]$Hss" read -p "输入0.1~20: " para28 if (( $(echo "$para28 > 0" | bc) )) && (( $(echo "$para28 < 21" | bc) )) then blL28="$para28" echo -e "$Hs[提示] 已设置:经验倍率:"$blL28"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz28 fi } function yxpz29() { echo -e "$Ls[指令] [ 设置工作倍率. ]$Hss" read -p "输入: " para29 if (( $(echo "$para29 > 0" | bc) )) && (( $(echo "$para29 < 120" | bc) )) then blL29="$para29" echo -e "$Hs[提示] 已设置:工作倍率:"$blL29"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz29 fi } function yxpz30() { echo -e "$Ls[指令] [ 设置对建筑伤害倍率. ]$Hss" read -p "输入0.5~3: " para30 if (( $(echo "$para30 > 0.4" | bc) )) && (( $(echo "$para30 < 3.1" | bc) )) then blL30="$para30" echo -e "$Hs[提示] 已设置:伤害倍率:"$blL30"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz30 fi } function yxpz31() { echo -e "$Ls[指令] [ 设置建筑劣化速度倍率. ]$Hss" read -p "输入0~10: " para31 if (( $(echo "$para31 < 10.1" | bc) )) then blL31="$para31" echo -e "$Hs[提示] 已设置:劣化倍率:"$blL31"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz31 fi } function yxpz32() { echo -e "$Ls[指令] [ 设置可采集物刷新间隔. ]$Hss" read -p "输入0.5~3: " para32 if (( $(echo "$para32 > 0.4" | bc) )) && (( $(echo "$para32 < 3.1" | bc) )) then blL32="$para32" echo -e "$Hs[提示] 已设置:刷新间隔:"$blL32"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz32 fi } function yxpz33() { echo -e "$Ls[指令] [ 设置道具采集量倍率. ]$Hss" read -p "输入0.5~3: " para33 if (( $(echo "$para33 > 0.4" | bc) )) && (( $(echo "$para33 < 3.1" | bc) )) then blL33="$para33" echo -e "$Hs[提示] 已设置:采集量倍率:"$blL33"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz33 fi } function yxpz34() { echo -e "$Ls[指令] [ 设置可采集物生命至倍率. ]$Hss" read -p "输入0.5~3: " para34 if (( $(echo "$para34 > 0.4" | bc) )) && (( $(echo "$para34 < 3.1" | bc) )) then blL34="$para34" echo -e "$Hs[提示] 已设置:生命值倍率:"$blL34"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz34 fi } function yxpz35() { echo -e "$Ls[指令] [ 设置道具掉落倍率. ]$Hss" read -p "输入0.5~3: " para35 if (( $(echo "$para35 > 0.4" | bc) )) && (( $(echo "$para35 < 3.1" | bc) )) then blL35="$para35" echo -e "$Hs[提示] 已设置:掉落倍率:"$blL35"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" yxpz35 fi } function yxpz36() { echo -e "$Ls[指令] [ 友军伤害:[1.开] [2.关] ]$Hss" read -p "输入: " para36 case $para36 in 1) blL36=True ;; 2) blL36=False ;; *) echo -e "\033[91m[注意] 命令有误,请重新输入!$Hss" yxpz36;; esac echo -e "$Hs[提示] 已设置:开关:"$blL36"!$Hss" } function yxpz37() { echo -e "$Ls[指令] [ 允许入侵:[1.开] [2.关] ]$Hss" read -p "输入: " para37 case $para37 in 1) blL37=True ;; 2) blL37=False ;; *) echo -e "\033[91m[注意] 命令有误,请重新输入!$Hss" yxpz37;; esac echo -e "$Hs[提示] 已设置:入侵:"$blL37"!$Hss" } #-------------------------------------------------------------------------------------------下载脚本 function zdgxjb() { echo -e "$Ls$dividing$Hss" echo -e "$Hs[提示] 检测版本中...$Hss" sed -i "/YUGENX/c\YUGENX=$(curl "https://gitee.com/$jbgxlj/script/" | grep -e 'pal_version' | grep 'new_filename' | tr -cd '[0-9][.]' )" "$HOME"/config.conf hqversion=$(cat "$HOME"/config.conf | grep -e 'YUGENX' | tr -cd '[0-9][.]') echo -e "$Hs[提示] 最新版本:"$hqversion"$Hss" echo -e "$Hs[提示] 当前版本:"$jbversion"$Hss" if [ -e $HOME/xa.sh ] then mr -f xa.sh fi echo -e "$Hs[提示] 正在更新脚本...$Hss" cd "$( dirname "$0" )" wget -t 0 -T 10 -c -O xa.sh https://gitee.com/$jbgxlj/script/raw/pl/pal.sh if [ $? -ne 0 ] then echo -e "$Hs[提示] 下载失败,更换下载地址... $Hss" wget -t 0 -T 10 -c -O xa.sh https://gitee.com/CHUCHE0714/script/raw/pl/pal.sh chmod 777 xa.sh mv -f pal.sh bf_pal.sh sleep 1 mv -f xa.sh pal.sh sleep 1 else chmod 777 xa.sh mv -f pal.sh bf_pal.sh sleep 1 mv -f xa.sh pal.sh sleep 1 fi echo -e "$Hs[提示] 当前脚本已是最新版本!$Hss" ./pal.sh echo -e "$Ls$dividing$Hss" } #-------------------------------------------------------------------------------------------虚拟内存 function zdgxjxnb() { echo -e "$Ls$dividing$Hss" echo -e "$Hs[提示] 虚拟内存:将硬盘空间划分出来当内存,不建议设置超过当前内存两倍!$Hss" echo -e "$Ls[指令] [ [1.设置虚拟内存] [0.退出] ]$Hss" read -p "输入: " pajmkhra9re case $pajmkhra9re in 1) echo -e "$Ls$dividing$Hss" if [[ $(swapon -s | grep -c "file") > 0 ]]; then echo -e "$Hs[提示] 检测到已设置虚拟内存,自动删除中.$Hss" gengduowads fi echo -e "$Ls[指令] [ 请输入虚拟内存大小! 4~64G ]$Hss" read -p "输入: " pajmkhra9rde if [ $pajmkhra9rde -ge 4 -a $pajmkhra9rde -le 64 ] then Openswap #虚拟内存 echo -e "$Hs[提示] 已设置:虚拟内存:"$pajmkhra9rde"!$Hss" else echo -e "\033[91m[注意] 输入有误,请重新设置!$Hss" zdgxjxnb fi ;; 0) echo -e "$Hs[提示] 已退出.$Hss";; *) echo -e "\033[91m[注意] 命令有误,请重新输入!$Hss" zdgxjxnb;; esac } function gengduowads() { if [[ $(cat /etc/sysctl.conf | grep -c "swappiness") < 1 ]]; then echo "vm.swappiness = 0" >> /etc/sysctl.conf else sed -i '/vm.swappiness/c\vm.swappiness = 0' /etc/sysctl.conf fi xnneccc=$(swapon -s | awk '{print $1}' | sed -n '2p') echo -e "$Hs[提示] 如果卡住请按ctrl c退出!或重启云主机后重试!$Hss" swapoff $xnneccc rm -rf /etc/fstab echo -e "$Hs[提示] 虚拟内存已删除!$Hss" gengduos } #-------------------------------------------------------------------------------------------更多 function gengduos() { echo -e "$Ls[指令] [ [1.更新脚本] [2.设置虚存] [3.删除虚存] ]$Hss" echo -e "$Ls[指令] [ [4.重装依赖] [5.删除存档] [0.返回菜单] ]$Hss" read -p "输入: " pajmkhra9 case $pajmkhra9 in 1) zdgxjb #更新脚本 ;; 2) if [[ $(swapon -s | grep -c "file") > 0 ]]; then echo -e "$Hs[提示] 已设置虚拟内存,请删除后重试.$Hss" gengduos fi zdgxjxnb chuche ;; 3) gengduowads #删除虚拟内存 ;; 4) SystemPreps Chuche ;; 5) echo -e "$Ls$dividing$Hss" Ssscreen1 #关闭所有进程 sleep 2 echo -e "\033[91m[注意] 此功能用于删除存档文件,请谨慎操作!$Hss" echo -e "$Ls[指令] [y.删除] [0.返回菜单]$Hss" read -p "输入: " input_mode case $input_mode in [yY]) if [ -d "$cdwjl" ] then sudo rm -rf $cdwjl fi echo -e "$Hs[提示] 已清空幻兽帕鲁存档文件.$Hss" ;; 0) chuche ;; *) echo -e "\033[91m[注意] 命令有误,请重新输入!$Hss" Chuche;; esac chuche ;; 0) chuche ;; *) echo -e "\033[91m[注意] 命令有误,请重新输入!$Hss" yxpz9;; esac } #-------------------------------------------------------------------------------------------说明 function shuomings() { echo -e "$Hs B站ID:初澈er 群:190917125 视频教程:https://www.bilibili.com/video/BV1xQ4y1c7hY 声明:本脚本严禁他人使用于任何商业用途! 更新日志1.3-5: 修复【5.修改】个别bug,增加自动关闭房间。 增加【0.更多】可更新脚本,删除存档等。 增加【9.说明】可查看更新日志,个别说明。 优化【1.启动】启动项CPU多核心利用。 增加【0.更多】虚拟内存可手动调整大小。 增加【5.修改】更多选项。 更新日志1.07: 增加[7.备份] -手动备份存档. 增加[8.恢复] -手动恢复存档. 存档路径:/home/CHUCHEER/Steam/steamapps/common/PalServer/Pal/Saved/SaveGames/0 配置文件路径:/home/CHUCHEER/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini 脚本使用 -[9.说明]: [0.更多] -杂七杂八(如更新脚本,增加虚拟内存.) [1.启动] -启动房间(会自动关闭已启动房间.) [2.更新] -更新游戏版本(游戏版本有更新时,服务器也需要更新.) [3.查看] -查看游戏进程和直连代码 [4.关闭] -关闭游戏进程(手动修改文件前务必先关闭) [5.修改] -修改房间配置(如死亡不掉落.) [6.自动] -该功能尚未完成! [7.备份] -手动备份存档. [8.恢复] -手动恢复存档. [91] -执行后将在10秒内重启主机. $Hss" sleep 5 chuche } #-------------------------------------------------------------------------------------------主菜单 if [ ! -e "$games"/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini ] then mkdir -p /home/CHUCHEER/Steam/steamapps/common/PalServer/Pal/Saved/Config/LinuxServer/ touch "$games"/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini fi if [ ` cat "$games"/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini | wc -c` -le 10 ] then mobanww=$(cat /home/CHUCHEER/Steam/steamapps/common/PalServer/DefaultPalWorldSettings.ini) echo "$mobanww" > "$games"/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini fi hqversion=$(cat "$HOME"/config.conf | grep -e 'YUGENX' | tr -cd '[0-9]' ) jbversion1=$(echo $jbversion | tr -cd '[0-9]' ) if [[ ! -z "$hqversion" ]] && [[ ! "$hqversion" == "$jbversion1" ]] then hqversion=$(cat "$DATAlj"config.conf | grep -e 'YUGENX' | tr -cd '[.]' ) if [[ "$hqversion" == '.' ]] then echo -e "$Hs[提示] 检测到脚本有强制更新!开始执行更新脚本程序!$Hss" zdgxjb fi fi function chuche() { echo -e "$Ls$dividing$Hss" echo -e "$Hs====STEAM平台===PalWorld/幻兽帕鲁===开服脚本=====$Hs" echo -e "$Hs======群:190917125=====初澈er=====1.07===========$Hs" echo -e "$Hs=========$Hss$Ls[0.更多]$Hss$Hs==========$Hss$Ls[9.说明]$Hss$Hs==============$Hss" echo -e "$Hs====$Hss$Ls[1.启动] [2.更新] [3.查看] [4.关闭] $Hss$Hs====== $Hss" echo -e "$Hs====$Hss$Ls[5.修改] [6.自动] [7.备份] [8.恢复] $Hss$Hs======$Hss" read -p "输入: " input_update case $input_update in 1) echo -e "$Ls$dividing$Hss" ServerStart;; 2) echo -e "$Ls$dividing$Hss" ServerPrepsS;; 3) echo -e "$Ls$dividing$Hss" Checkserver;; 4) echo -e "$Ls$dividing$Hss" Ssscreen;; 5) pzclj="$games"/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini #echo -e "$Hs[提示] 配置文件路径:"$pzclj" $Hss" xiugaiwenjian;; 6) echo -e "$Ls$dividing$Hss" echo -e "$Hs 功能未完成!$Hs" chuche;; 7) echo -e "$Ls$dividing$Hss" FilesBackup;; 8) echo -e "$Ls$dividing$Hss" Recovery1;; 9) echo -e "$Ls$dividing$Hss" shuomings;; 0) echo -e "$Ls$dividing$Hss" gengduos;; 91) echo -e "$Ls$dividing$Hss" echo -e "$Hs 10秒后重启服务器主机,请在一分钟后尝试重新连接!$Hs" echo -e "$Hs 10秒后重启服务器主机,请在一分钟后尝试重新连接!$Hs" echo -e "$Hs 10秒后重启服务器主机,请在一分钟后尝试重新连接!$Hs" sleep 10 shutdown -r now;; *) echo -e "\033[91m[注意] 命令有误,请重新输入!$Hss" chuche;; esac } #sudo passwd CHUCHE #sudo su CHUCHEER #------------------------------------------------------------------------------------------- if [ ! -e "$games"/PalServer.sh ] then SystemPreps CommandPreps ServerPreps clear shuomings fi chuche