如何在批量工作中保存?

时间:2016-08-12 02:05:18

标签: batch-file

我正在进行批量游戏,我正在尝试将一个名为finalrealm的批处理游戏中的保存系统实施到我的游戏中。他的比赛比我的比赛更开放,所以我不得不改变一些东西。我的保存系统如何工作,当你到达游戏的某个部分时,它会将你在游戏中的“位置”设置为一个变量,将gam中的所有变量保存到.bat文件中,然后使用该位置变量,回到你所处的游戏中。但是,出现问题然后它会将您带入登录的代码中。然后,如果我尝试登录,则会失败。

以下是代码:

@echo off
cls
Title RPG BUILD 0.4 (MAJOR UPDATE:Saving Progress +)
color 07
cls

:FirstMENU
cls
echo What would you like to do?
echo.
echo 1) Open Save File
echo 2) New Game
echo.
echo.
echo Current Version: RPG BUILD 0.4
echo (Saving Function Based on "FinalRealm" by Brian)
set /p login=
if %login% GEQ 3 goto FirstMENU
if %login% EQU 1 goto login
if %login% EQU 2 goto createuser
goto Login

:createuser
echo.
echo What would you like your Username to be?
set /p username1= 
set v1f=0
goto checkforspaces

:checkforspaces
set x=!v1f!
set Letter%v1f%=!username1:~%x%,1!
if "!Letter%v1f%!" EQU " " (
echo.
echo.
echo Sorry you cant use spaces in your Username.
pause>nul
goto FirstMenu
)
echo.
echo What would you like your Password to be?
set /p password1= 
goto Begin

:SAVE_GAME_FILES
(
echo set username1=%username1%
echo set password1=%password1%
:DATA_VALUES
set Hair=%Hair%
set Face=%Face%
set E=%E%
set /a Power=%Power%
set /a Hp=%Hp%
set rival=%rival%
set /a rivalhp=%rivalhp%
set L=%L%
)>%username1%.bat
if L EQU 1 goto Menu
if L EQU 2 goto folo
if L EQU 3 goto rolo
if L EQU 4 goto levelup1
if L EQU 5 goto 23

:login
cls
set /p name1=Username: 
if not exist "%name1%.bat" (
echo That is not a valid Username.
pause>nul
goto FirstMenu
)
set /p pass1=Password: 
call %name1%.bat
if not %password1% EQU %pass1% (
echo That is not a valid Password.
pause>nul
goto FirstMenu
)
goto SAVE_GAME_FILES

:Begin
echo Hello %username1%!
pause >nul
cls
echo Begin your journey by making a character!
pause >nul
:CM
cls
echo Loading Character Maker
pause >nul
cls
:Hair
echo 1. Bald
echo 2. Wavy Hair ~~~
echo 3. Curled Up Hair ,,,
set /p answer=Type the number of your option and press enter.
if %answer%==1 goto lel
if %answer%==2 goto 2
if %answer%==3 goto 3
:lel
cls
set Hair=___
goto A
:2
cls
set Hair=~~~
goto A
:3
cls
set Hair=,,,
goto A
:A
echo 1. ('-') Face
echo 2. (.3.) Face
echo 3. (._.) Face
set /p answer=Type the number of your option and press enter.
if %answer%==1 goto 5
if %answer%==2 goto 6
if %answer%==3 goto 7
:5
cls
set Face=('-')
goto B
:6
cls
set Face=(.3.)
goto B
:7
cls
set Face=(._.)
goto B
:B
echo 1. (-) Energy
echo 2. (*) Energy 
echo 3. (+) Energy 
set /p answer=Type the number of your option and press enter.
if %answer%==1 goto 8
if %answer%==2 goto 9
if %answer%==3 goto 0
:0
cls
set E=+
goto C
:9
cls
set E=*
goto C
:8
cls
set E=-
goto C 
:C
echo  %Hair%
echo %Face%
echo  /!\ %E% 
echo  /"\ 
echo This is your character
set /p answer=Would you like to redo you character? (Yes/No)
if %answer%==Yes goto CM
if %answer%==No goto MenuPre
:MenuPre
set L=1
goto SAVE_GAME_FILES
:Menu
cls
echo MENU
echo 1. Start
echo 2. Exit 

set /p answer=Type the number of your option and press enter.
if %answer%==1 goto Start
if %answer%==2 goto Exit

:Exit
exit
:Start
cls
echo Let us begin by getting you an item!
pause >nul
cls
set L=2
goto SAVE_GAME_FILES
:folo
cls
color 0A 
echo \---------------------------------------------------\
echo  \                  Item Shop (Route 1)              \
echo   \---------------------------------------------------\
pause >nul
cls
echo Oh hey! A promotion! "All new customers get a free sword!"
pause >nul
cls
echo *Randomizing Sword's Power*
pause >nul
:Random
cls
set /a Power=%random% 
if %random% GTR 1000 goto Random
set /a Power=%Power%/2400 + 1
echo Wow! This sword's power stat is %Power% (10 and below is common, 
echo 11 and above is uncommon)
pause >nul
cls 
echo %username1% recieved "Sword"
pause >nul
set L=3
goto SAVE_GAME_FILES
:rolo
cls
color 03
echo ???????: Hey, %username1%! I am going to wreck you!!!!
pause >nul
cls 
echo ??????: I am your rival!!!
pause >nul
cls
set /p rival=What is your rival's name?
cls
set /a rivalhp=50
set /a hp=50
cls
color 0F
echo %rival%'s HP:%rivalhp%        %username1%'s Hp:%hp%
pause >nul
:BattleMain
cls
echo %rival%'s HP:%rivalhp%        %username1%'s Hp:%hp%
echo What move will you use?
echo 1.Slash 
set /p answer=
if %answer%==1 goto SwegslashRandom
:SwegslashRandom
cls
set /a num=%random%
if %num% gtr 100 goto SwegslashRandom
if %num% lss 1 goto SwegslahsRandom
if %num% gtr 75 (goto Critical)
if %num%==75 (goto OK)
if %num% lss 75 (goto OK)
:Critical
set /a rivalhp= %rivalhp%-(%Power% + 5)
cls
echo %rival% used Punch! 
pause >nul
cls
echo Your HP went down by 8!
pause >nul
cls
echo You used Slash
pause >nul
cls
echo Critical hit! %rival%'s HP went down by %power% + 5 for critical hit bonus!
pause
set /a hp=%hp%-8
if %rivalhp%==0 goto Win
if %rivalhp% lss 0 goto Win
if %rivalhp% gtr 0 goto BattleMain
:OK
set /a rivalhp= %rivalhp%-%power%
cls
echo %rival% used Punch! 
pause >nul
cls
echo Your HP went down by 10!
pause >nul
if %hp%==0 goto LOZER
if %hp% lss 0 goto LOZER
cls
echo You used Slash
pause >nul
cls
echo %rival%'s HP went down by %power%!
pause >nul
set /a hp =%hp%-10
if %rivalhp%==0 goto Win
if %rivalhp% lss 0 goto Win
if %rivalhp% gtr 0 goto BattleMain
:Win
cls 
color 0E
echo %rival%: Ugh, you're too powerful...
pause >nul
cls
echo %rival% ran away
pause >nul
goto levelup1
:LOZER
cls 
color 47
echo %rival%:HA, what a weak foe!
pause >nul
echo *Redoing Battle*
pause >nul
goto rolo

set L=4
goto SAVE_GAME_FILES
:levelup1
cls
echo %username1% Leveled up to, Level 2!
set /a level=2
pause >nul
cls
set /a hp=(%hp%*8)+50
set /a power=%power%+((%random%/1000)+1)
echo Wow! Your sword's power is now %power%, and your HP is now %hp%
pause >nul
:PRE23
set L=5
goto SAVE_GAME_FILES
:23
cls 
echo Oh hey, %rival% dropped a map!
pause >nul
cls
echo                                       [] Destiny Cave
echo                Route 3                 !
echo               ________                 !
echo              /        \                !
echo             [] City A  \ Route 4       ! Route X
echo             /           \              !
echo            / Route 2     !   Route 5   !
echo Route 1   /       []_____!____________[]
echo _________/   Gang Hideout           City B
pause >nul
cls
echo %username1% obtained "Map"
pause >nul
cls 
echo Let's continue onto Route 2!
pause >nul
cls
echo \---------------------------------------------------\
echo  \                        Route 2                    \
echo   \---------------------------------------------------\
pause >nul
cls
echo While we go down Route 2, let me explain "energy"
pause >nul
cls
echo It seems you have, %E% type energy.
pause >nul
cls 
echo During a battle, you can use energy attacks.
pause >nul
cls
echo Energy Attacks are sort of a gamble, they can be really good or really bad
echo but they get stronger the lower the hp you have, so use them to finish the battle
pause >nul
cls
echo                                       [] Destiny Cave
echo                Route 3                 !
echo               ________                 !
echo              /        \                !
echo    You ---> [] City A  \ Route 4       ! Route X
echo             /           \              !
echo            / Route 2     !   Route 5   !
echo Route 1   /       []_____!____________[]
echo _________/   Gang Hideout           City B
pause >nul
echo Hey! We are now in City A!
pause >nul
cls 
echo that is the end of Build
pause >nul
exit

非常感谢帮助!谢谢!

1 个答案:

答案 0 :(得分:0)

使用echo %variable%代替set /a variable=%variable%,它应该可以使用。