|
Answer» Hey guys! I have created this game which is turning out to have amazing mechanics! That is, except the saving and loading codes. Saving is easy, but the loading is the part that puts me off. here they are, can any one tell me why they don't work? Besides the third one. I didn't change that yet.
:menu cls echo 1. start new game echo 2. load echo 3. exit
set /p start=%enter%
if %start% equ 1 GOTO preset if %start% equ 2 goto whichload if %start% equ 3 goto exit goto menu
:exit exit
:preset cls set /a playerhealth =100 set /a wholehealth =100 set /a attack =20 set /a Magicattack =15 set /a gold =10 set /a weapon =none set /a wand =none set /a defense =20 set /a exptill =300 set /a exp =0 set /a level =1 set /a HPpotions =0 set /a ordswo =0 set /a logswo =0 set /a firswo =0 set /a deadswo =0 set /a woodwand =0 set /a majwand =0 set /a maswand =0 set /a la =0 set /a ia =0 set /a ea =0 set /a da =0 set /a wizexp =5 set /a wizkn =0 set /a mana =50 set /a wholemana =50 set /a batexp =0 set /a accuracy =15 set /a evasion =15 set /a ordsworde =0 set /a longsworde =0 set /a firesworde =0 set /a deathsworde =0 set /a woodenwande =0 set /a majesticwande =0 set /a masterwande =0 cls echo. echo What is your name?
set /p name=%enter%
goto welcome
:whichsave cls echo. echo Would you like to save in file 1,2 or 3? echo. echo (Type 1 or 2 or 3 or EXIT) echo. echo. if EXIST LoBGameSave1.BAT echo File 1. Has data. if NOT EXIST LoBGameSave1.bat echo File 1. Has no data. if EXIST LoBGameSave2.bat echo File 2. Has data. if NOT EXIST LoBGameSave2.bat echo File 2. Has no data. if EXIST LoBGameSave3.bat echo File 3. Has data. if NOT EXIST LoBGameSave3.bat echo File 3. Has no data. echo. echo.
set /p savean=%enter%
if %savean% equ 1 goto overwritestate1 if %savean% equ 2 goto overwritestate2 if %savean% equ 3 goto overwritestate3 if %savean% equ EXIT goto beginning goto whichsave
:overwritestate1 cls echo. if EXIST LoBGameSave1.bat echo There is ALREADY save data. if NOT EXIST LoBGameSave1.bat echo There is no save data. echo. echo Would you still like to save? Y/N/EXIT
set /p savean2=%enter%
if %savean2% equ Y goto save1 if %savean2% equ N goto whichsave if %savean2% equ EXIT goto beginning goto overwritestate1
:overwritestate2 cls echo. if EXIST LoBGameSave2.bat echo There is already save data. if NOT EXIST LoBGameSave2.bat echo There is no save data. echo. echo Would you still like to save? Y/N/EXIT
set /p savean3=%enter%
if %savean3% equ Y goto save2 if %savean3% equ N goto whichsave if %savean3% equ EXIT goto beginning goto overwritestate2
:overwritestate3 cls echo. if EXIST LoBGameSave2.bat echo There is already save data. if NOT EXIST LoBGameSave2.bat echo There is no save data. echo. echo Would you still like to save? Y/N/EXIT
set /p savean3=%enter%
if %savean3% equ Y goto save3 if %savean3% equ N goto whichsave if %savean3% equ EXIT goto beginning goto overwritestate3
:save1 (echo set /a name =%name%) >> LoBGameSave1.bat (echo set /a playerhealth =%playerhealth%) >> LoBGameSave1.bat (echo set /a wholehealth =%wholehealth) >> LoBGameSave1.bat (echo set /a attack =%attack%) >> LoBGameSave1.bat (echo set /a Magicattack =%Magicattack%) >> LoBGameSave1.bat (echo set /a gold =%gold%) >> LoBGameSave1.bat (echo set /a weapon =%weapon%) >> LoBGameSave1.bat (echo set /a wand =%wand%) >> LoBGameSave1.bat (echo set /a defense =%defense%) >> LoBGameSave1.bat (echo set /a exptill =%exptill%) >> LoBGameSave1.bat (echo set /a exp =%exp%) >> LoBGameSave1.bat (echo set /a level =%level%) >> LoBGameSave1.bat (echo set /a HPpotions =%HPpotions%) >> LoBGameSave1.bat (echo set /a ordswo =%ordswo%) >> LoBGameSave1.bat (echo set /a logswo =%logswo%) >> LoBGameSave1.bat (echo set /a firswo =%firswo%) >> LoBGameSave1.bat (echo set /a deadswo =%deadswo%) >> LoBGameSave1.bat (echo set /a woodwand =%woodwand%) >> LoBGameSave1.bat (echo set /a majwand =%majwand%) >> LoBGameSave1.bat (echo set /a maswand =%maswand%) >> LoBGameSave1.bat (echo set /a la =%la%) >> LoBGameSave1.bat (echo set /a ia =%ia%) >> LoBGameSave1.bat (echo set /a ea =%ea%) >> LoBGameSave1.bat (echo set /a da =%da%) >> LoBGameSave1.bat (echo set /a wizexp =%wizexp%) >> LoBGameSave1.bat (echo set /a wizkn =%wizkn%) >> LoBGameSave1.bat (echo set /a mana =%mana%) >> LoBGameSave1.bat (echo set /a wholemana =%wholemana%) >> LoBGameSave1.bat (echo set /a batexp =%batexp%) >> LoBGameSave1.bat (echo set /a evasion =%evasion%) >> LoBGameSave1.bat (echo set /a ordsworde =%ordsworde%) >> LoBGameSave1.bat (echo set /a longsworde =%longsworde%) >> LoBGameSave1.bat (echo set /a firesworde =%firesworde%) >> LoBGameSave1.bat (echo set /a deathsworde =%ordsworde%) >> LoBGameSave1.bat (echo set /a woodenwande =%woodenwande%) >> LoBGameSave1.bat (echo set /a majesticwande =%majesticwande%) >> LoBGameSave1.bat (echo set /a masterwande =%masterwande%) >> LoBGameSave1.bat echo. echo Game Saved! pause goto menu
:save2 (echo set /a name =%name%) >> LoBGameSave2.bat (echo set /a playerhealth =%playerhealth%) >> LoBGameSave2.bat (echo set /a wholehealth =%wholehealth) >> LoBGameSave2.bat (echo set /a attack =%attack%) >> LoBGameSave2.bat (echo set /a Magicattack =%Magicattack%) >> LoBGameSave2.bat (echo set /a gold =%gold%) >> LoBGameSave2.bat (echo set /a weapon =%weapon%) >> LoBGameSave2.bat (echo set /a wand =%wand%) >> LoBGameSave2.bat (echo set /a defense =%defense%) >> LoBGameSave2.bat (echo set /a exptill =%exptill%) >> LoBGameSave2.bat (echo set /a exp =%exp%) >> LoBGameSave2.bat (echo set /a level =%level%) >> LoBGameSave2.bat (echo set /a HPpotions =%HPpotions%) >> LoBGameSave2.bat (echo set /a ordswo =%ordswo%) >> LoBGameSave2.bat (echo set /a logswo =%logswo%) >> LoBGameSave2.bat (echo set /a firswo =%firswo%) >> LoBGameSave2.bat (echo set /a deadswo =%deadswo%) >> LoBGameSave2.bat (echo set /a woodwand =%woodwand%) >> LoBGameSave2.bat (echo set /a majwand =%majwand%) >> LoBGameSave2.bat (echo set /a maswand =%maswand%) >> LoBGameSave2.bat (echo set /a la =%la%) >> LoBGameSave2.bat (echo set /a ia =%ia%) >> LoBGameSave2.bat (echo set /a ea =%ea%) >> LoBGameSave2.bat (echo set /a da =%da%) >> LoBGameSave2.bat (echo set /a wizexp =%wizexp%) >> LoBGameSave2.bat (echo set /a wizkn =%wizkn%) >> LoBGameSave2.bat (echo set /a mana =%mana%) >> LoBGameSave2.bat (echo set /a wholemana =%wholemana%) >> LoBGameSave2.bat (echo set /a batexp =%batexp%) >> LoBGameSave2.bat (echo set /a evasion =%evasion%) >> LoBGameSave2.bat (echo set /a ordsworde =%ordsworde%) >> LoBGameSave2.bat (echo set /a longsworde =%longsworde%) >> LoBGameSave2.bat (echo set /a firesworde =%firesworde%) >> LoBGameSave2.bat (echo set /a deathsworde =%ordsworde%) >> LoBGameSave2.bat (echo set /a woodenwande =%woodenwande%) >> LoBGameSave2.bat (echo set /a majesticwande =%majesticwande%) >> LoBGameSave2.bat (echo set /a masterwande =%masterwande%) >> LoBGameSave2.bat echo. echo Game Saved! pause goto menu
:save3 (echo name =%name%) >> LoBGameSave3.bat (echo playerhealth =%playerhealth%) >> LoBGameSave3.bat (echo wholehealth =%wholehealth) >> LoBGameSave3.bat (echo attack =%attack%) >> LoBGameSave3.bat (echo Magicattack =%Magicattack%) >> LoBGameSave3.bat (echo gold =%gold%) >> LoBGameSave3.bat (echo weapon =%weapon%) >> LoBGameSave3.bat (echo wand =%wand%) >> LoBGameSave3.bat (echo defense =%defense%) >> LoBGameSave3.bat (echo exptill =%exptill%) >> LoBGameSave3.bat (echo exp =%exp%) >> LoBGameSave3.bat (echo level =%level%) >> LoBGameSave3.bat (echo HPpotions =%HPpotions%) >> LoBGameSave3.bat (echo ordswo =%ordswo%) >> LoBGameSave3.bat (echo logswo =%logswo%) >> LoBGameSave3.bat (echo firswo =%firswo%) >> LoBGameSave3.bat (echo deadswo =%deadswo%) >> LoBGameSave3.bat (echo woodwand =%woodwand%) >> LoBGameSave3.bat (echo majwand =%majwand%) >> LoBGameSave3.bat (echo maswand =%maswand%) >> LoBGameSave3.bat (echo la =%la%) >> LoBGameSave3.bat (echo ia =%ia%) >> LoBGameSave3.bat (echo ea =%ea%) >> LoBGameSave3.bat (echo da =%da%) >> LoBGameSave3.bat (echo wizexp =%wizexp%) >> LoBGameSave3.bat (echo wizkn =%wizkn%) >> LoBGameSave3.bat (echo mana =%mana%) >> LoBGameSave3.bat (echo wholemana =%wholemana%) >> LoBGameSave3.bat (echo batexp =%batexp%) >> LoBGameSave3.bat (echo evasion =%evasion%) >> LoBGameSave3.bat (echo ordsworde =%ordsworde%) >> LoBGameSave3.bat (echo longsworde =%longsworde%) >> LoBGameSave3.bat (echo firesworde =%firesworde%) >> LoBGameSave3.bat (echo deathsworde =%ordsworde%) >> LoBGameSave3.bat (echo woodenwande =%woodenwande%) >> LoBGameSave3.bat (echo majesticwande =%majesticwande%) >> LoBGameSave3.bat (echo masterwande =%masterwande%) >> LoBGameSave3.bat echo. echo Game Saved! pause goto menu
:whichload cls echo. echo Would you like to load in file 1,2 or 3? echo. echo (Type 1 or 2 or 3 or EXIT) echo. echo. if EXIST LoBGameSave1.bat echo File 1. Has data. if NOT EXIST LoBGameSave1.bat echo File 1. Has no data. if EXIST LoBGameSave2.bat echo File 2. Has data. if NOT EXIST LoBGameSave2.bat echo File 2. Has no data. if EXIST LoBGameSave3.bat echo File 3. Has data. if NOT EXIST LoBGameSave3.bat echo File 3. Has no data. echo. echo.
set /p loadans1=%enter%
if %loadans1% equ 1 goto sureload1 if %loadans1% equ 2 goto sureload2 if %loadans1% equ 3 goto sureload3 goto whichload
:sureload1 if NOT EXIST LoBGameSave1.bat goto Nodata cls echo. if EXIST LoBGameSave1.bat echo Load File 1? Y/N/EXIT echo
set /p loadans2=%enter%
if %loadans2% Y goto load1 if %loadans2% N goto whichload if %loadans2% EXIT goto menu goto sureload1
:sureload2 if NOT EXIST LoBGameSave2.bat goto Nodata cls echo. if EXIST LoBGameSave2.bat echo Load File 2? Y/N/EXIT echo
set /p loadans3=%enter%
if %loadans3% Y goto load2 if %loadans3% N goto whichload if %loadans3% EXIT goto menu goto sureload2
:sureload3 if NOT EXIST LoBGameSave1.bat goto Nodata cls echo. if EXIST LoBGameSave3.bat echo Load File 3? Y/N/EXIT echo
set /p loadans4=%enter%
if %loadans4% Y goto load3 if %loadans4% N goto whichload if %loadans4% EXIT goto menu goto sureload1
:Nodata cls echo. echo There is not data in that file! echo. pause goto whichload
:load1 cls for /f %%a in (LoBGameSave1.bat) do set %%a echo. echo Game Loaded! pause goto beginning
:load2 cls for /f %%a in (LoBGameSave2.bat) do set %%a echo. echo Game Loaded! pause goto beginning
:load3 cls for /f %%a in (LoBGameSave3.bat) do set %%a echo. echo Game Loaded! pause goto beginningNo need to Double Post...
I've removed your other one.1.) when you defined your VARIABLES, you use this: set /a Magicattack =15 which defines the variable %Magicattack % not %Magicattack%. This could be causing some of your issues. Oh, and you don't need the /a, that is used for arithmetic.
2.) Not sure how you are saving your game, but I usually use set >save1.txt. Then to load, you just go for /f "delims=" %%A in (save1.txt) do set %%A. This will redefine all of your variables to what they were when you saved. Be careful though, if you change an environment variable such as path between loads It will override those changes.
3.) I would RECOMMEND setting a variable for the save you are going to load from, and reduce the number of functions you have.
Code: (Example) [Select]:load cls for /f %%a in (LoBGameSave%Load_Num%.bat) do set %%a echo. echo Game Loaded! pause goto beginning
Quote from: Lemonilla on June 22, 2014, 07:41:36 AM 1.) when you defined your variables, you use this: set /a Magicattack =15 which defines the variable %Magicattack % not %Magicattack%.
Lemonilla, you will be surprised to find that set /a var =15 doesn't behave the same as set var =15 The code you've shown will work just fine and not introduce a space.
Thanks guys, but I found a different method which works consistently. \\m// (-_-)
Quote from: Batch_gamer on June 23, 2014, 03:33:54 PMThanks guys, but I found a different method which works consistently. \\m// (-_-)
Pray tell us what it was...
Quote from: patio on June 23, 2014, 04:18:26 PM Pray tell us what it was...
You dont like passive aggressive responses. Batch_gamer I have been writing a game and was wandering what was the way you figured out how to save the game?
Quote from: shiverbob on June 29, 2014, 09:41:57 AMBatch_gamer I have been writing a game and was wandering what was the way you figured out how to save the game?
If you are holding all of your information in variables, I use: set >save1.txt and then to load I use: For /f "delims=" %%A in (save1.txt) do set %%A
Also, next time either read through the whole thread, or make a new one.
Quote from: Lemonilla on June 22, 2014, 07:41:36 AM2.) Not sure how you are saving your game, but I usually use set >save1.txt. Then to load, you just go for /f "delims=" %%A in (save1.txt) do set %%A. This will redefine all of your variables to what they were when you saved. Be careful though, if you change an environment variable such as path between loads It will override those changes.
I did and that method didn't work and I was wandering what the way he found...
How are you holding the data? And what type of stuff do you want to carry over? Seems to work fine for me.
Code: [Select] C:\windows\system32>t:
T:\>set a=7
T:\>set b=17
T:\>set >log
T:\>
Code: [Select] C:\windows\system32>set AGSDESKTOPJAVA=C:\Program Files (x86)\ArcGIS\Desktop10.2\ ALLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\Lemonilla\AppData\Roaming asl.log=Destination=file CommonProgramFiles=C:\Program Files (x86)\Common Files CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files CommonProgramW6432=C:\Program Files\Common Files COMPUTERNAME=LEMON ComSpec=C:\Windows\system32\cmd.exe FP_NO_HOST_CHECK=NO HOMEDRIVE=C: HOMEPATH=\Users\Lemonilla LOCALAPPDATA=C:\Users\Lemonilla\AppData\Local LOGONSERVER=\\LEMON LUA_DEV=C:\Program Files (x86)\Lua\5.1 LUA_PATH=;;C:\Program Files (x86)\Lua\5.1\lua\?.luac NUMBER_OF_PROCESSORS=4 OS=Windows_NT PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.wlua;.lexe PROCESSOR_ARCHITECTURE=x86 PROCESSOR_ARCHITEW6432=AMD64 PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 58 Stepping 9, GenuineIntel PROCESSOR_LEVEL=6 PROCESSOR_REVISION=3a09 ProgramData=C:\ProgramData ProgramFiles=C:\Program Files (x86) ProgramFiles(x86)=C:\Program Files (x86) ProgramW6432=C:\Program Files PROMPT=$P$G PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ PUBLIC=C:\Users\Public SESSIONNAME=Console SystemDrive=C: SystemRoot=C:\Windows TEMP=C:\Users\LEMONI~1\AppData\Local\Temp TMP=C:\Users\LEMONI~1\AppData\Local\Temp USERDOMAIN=Lemon USERNAME=Lemonilla USERPROFILE=C:\Users\Lemonilla VS120COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools \ windir=C:\Windows windows_tracing_flags=3 windows_tracing_logfile=C:\BVTBin\Tests\installpackage\csilogfile.log
C:\windows\system32>t:
T:\>for /f "delims=" %A in (log) do set %A
T:\>set a=7
T:\>set AGSDESKTOPJAVA=C:\Program Files (x86)\ArcGIS\Desktop10.2\
T:\>set ALLUSERSPROFILE=C:\ProgramData
T:\>set APPDATA=C:\Users\Lemonilla\AppData\Roaming
T:\>set asl.log=Destination=file
T:\>set b=17
T:\>set CommonProgramFiles=C:\Program Files (x86)\Common Files
T:\>set CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
T:\>set CommonProgramW6432=C:\Program Files\Common Files
T:\>set COMPUTERNAME=LEMON
T:\>set ComSpec=C:\Windows\system32\cmd.exe
T:\>set FP_NO_HOST_CHECK=NO
T:\>set HOMEDRIVE=C:
T:\>set HOMEPATH=\Users\Lemonilla
T:\>set LOCALAPPDATA=C:\Users\Lemonilla\AppData\Local
T:\>set LOGONSERVER=\\LEMON
T:\>set LUA_DEV=C:\Program Files (x86)\Lua\5.1
T:\>set LUA_PATH=;;C:\Program Files (x86)\Lua\5.1\lua\?.luac
T:\>set NUMBER_OF_PROCESSORS=4
T:\>set OS=Windows_NT
T:\>set PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.wlua;.lex e
T:\>set PROCESSOR_ARCHITECTURE=x86
T:\>set PROCESSOR_ARCHITEW6432=AMD64
T:\>set PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 58 Stepping 9, GenuineIntel
T:\>set PROCESSOR_LEVEL=6
T:\>set PROCESSOR_REVISION=3a09
T:\>set ProgramData=C:\ProgramData
T:\>set ProgramFiles=C:\Program Files (x86)
T:\>set ProgramFiles(x86)=C:\Program Files (x86)
T:\>set ProgramW6432=C:\Program Files
T:\>set PROMPT=$P$G
T:\>set PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
T:\>set PUBLIC=C:\Users\Public
T:\>set SESSIONNAME=Console
T:\>set SystemDrive=C:
T:\>set SystemRoot=C:\Windows
T:\>set TEMP=C:\Users\LEMONI~1\AppData\Local\Temp
T:\>set TMP=C:\Users\LEMONI~1\AppData\Local\Temp
T:\>set USERDOMAIN=Lemon
T:\>set USERNAME=Lemonilla
T:\>set USERPROFILE=C:\Users\Lemonilla
T:\>set VS120COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 12.0\Commo n7\Tools\
T:\>set windir=C:\Windows
T:\>set windows_tracing_flags=3
T:\>set windows_tracing_logfile=C:\BVTBin\Tests\installpackage\csilogfile.log
T:\>set a=7 AGSDESKTOPJAVA=C:\Program Files (x86)\ArcGIS\Desktop10.2\ ALLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\Lemonilla\AppData\Roaming asl.log=Destination=file b=17 CommonProgramFiles=C:\Program Files (x86)\Common Files CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files CommonProgramW6432=C:\Program Files\Common Files COMPUTERNAME=LEMON ComSpec=C:\Windows\system32\cmd.exe FP_NO_HOST_CHECK=NO HOMEDRIVE=C: HOMEPATH=\Users\Lemonilla LOCALAPPDATA=C:\Users\Lemonilla\AppData\Local LOGONSERVER=\\LEMON LUA_DEV=C:\Program Files (x86)\Lua\5.1 LUA_PATH=;;C:\Program Files (x86)\Lua\5.1\lua\?.luac NUMBER_OF_PROCESSORS=4 OS=Windows_NT PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.wlua;.lexe PROCESSOR_ARCHITECTURE=x86 PROCESSOR_ARCHITEW6432=AMD64 PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 58 Stepping 9, GenuineIntel PROCESSOR_LEVEL=6 PROCESSOR_REVISION=3a09 ProgramData=C:\ProgramData ProgramFiles=C:\Program Files (x86) ProgramFiles(x86)=C:\Program Files (x86) ProgramW6432=C:\Program Files PROMPT=$P$G PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ PUBLIC=C:\Users\Public SESSIONNAME=Console SystemDrive=C: SystemRoot=C:\Windows TEMP=C:\Users\LEMONI~1\AppData\Local\Temp TMP=C:\Users\LEMONI~1\AppData\Local\Temp USERDOMAIN=Lemon USERNAME=Lemonilla USERPROFILE=C:\Users\Lemonilla VS120COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools \ windir=C:\Windows windows_tracing_flags=3 windows_tracing_logfile=C:\BVTBin\Tests\installpackage\csilogfile.log
T:\>
I have try a txt a dat a bat and it is about 6 virables that will be changed by buying stuff in game But there is some words and that number will change And the issue is not saving it loading (I have know idea what dat is) Fine you want a new thread you will get one
Can we see the files? It could be that it isn't writing it properly, or in the wrong place.
Try surrounding %%A in quotes like this: for /f "delims=" %%A in (save1.txt) do set "%%A" That should help if there are spaces.Yea if you can figure a way to do that with a computer without internet I am using a tablet
Quote from: shiverbob on June 30, 2014, 01:30:55 PMYea if you can figure a way to do that with a computer without internet I am using a tablet
You are still able to connect here...run the above on a connected PC and see if it works.
|