新版本源码第一部分(颜色更改的关键!)- @echo off
- Rem 来自https://www.dostips.com/forum/viewtopic.php?f=3&t=9848&p=63348
- Rem 作者Lauri
- chcp 936 > nul
- title 劳里的幻想世界
- color 03
- echo.
- echo.正在加载图形引擎...
- If "%1"=="" (
- for %%a in ( QuickEdit:00000000
- CodePage:000003a8
- ColorTable00:000c0c0c
- ColorTable01:00da3700
- ColorTable02:000ea113
- ColorTable03:00dd963a
- ColorTable04:001f0fc5
- ColorTable05:00981788
- ColorTable06:00009cc1
- ColorTable07:00cccccc
- ColorTable08:00767676
- ColorTable09:00ff783b
- ColorTable10:000cc616
- ColorTable11:00d6d661
- ColorTable12:005648e7
- ColorTable13:009e00b4
- ColorTable14:00a5f1f9
- ColorTable15:00f2f2f2
- ) do For /F "tokens=1,2 delims=:" %%b in ("%%a") do (
- >nul Reg add HKCU\Console\DosBatch_Lauri_Fantasy /v %%b /t reg_dword /d 0x%%c /f
- )
- Start "DosBatch_Lauri_Fantasy" "%ComSpec%" /c "%~s0" 1&Goto:eof
-
- ) Else ( >nul reg delete HKCU\Console\DosBatch_Lauri_Fantasy /f )
- @goto INSTALL_COLOR
-
- :INSTALL_COLOR
- (
- echo.@echo off
- echo.chcp 936 ^> nul
- echo.Setlocal EnableDelayedExpansion
- echo.REM setlocal enableextensions
- echo.set dstdir=C:\tmpColorDirtoDelete
- echo.IF EXIST %%dstdir%% goto errExist
- echo.@mkdir %%dstdir%%
- echo.@cd %%dstdir%%
- echo.set count=0
- echo.REM DEFINISCO IL CARATTERE BACKSPACE!
- echo.set "$Defines=$BS" & set "$Details=Create $ESC Ascii-0x1B-27, Expansion insensitive"
- echo. for /f "delims=#" %%%%a in ^(
- echo. '"prompt #$H# &echo on &for %%%%b in (1) do rem"'
- echo. ^) do ^(
- echo. set "%%$Defines%%=%%%%a"
- echo. set "%%$Defines%%=!$BS:~0,1!"
- echo. ^)
- echo.FOR %%%%a IN ^(%%*^) DO ^(
- echo. FOR /F "usebackq delims=# tokens=1,*" %%%%b IN ^('%%%%a'^) DO ^(
- echo. REM echo %%%%b sara' di colore %%%%c
- echo. set /A count=!count!+1
- echo. set nomefile=%%%%b
- echo. IF %%%%c.==. ^(
- echo. set colore=03
- echo. ^) ELSE ^(
- echo. set colore=%%%%c
- echo. ^)
- echo. REM SET /P ".=" %%%%b
- echo. SET /P ".=%%$BS%% " ^<nul ^>%%%%b
- echo. REM echo !count!^>%%%%b
- echo. REM echo FINDSTR /A:%%%%c /C:"!count!" /S "%%%%b"
- echo. REM more %%%%b
- echo. set bin=%%%%b
- echo. ^)
- echo. REM FINE INNER FOR
- echo. REM echo FINDSTR /A:!colore! /C:"!count!" /S "!nomefile!"
- echo. FINDSTR /A:!colore! /C:" " /S "!nomefile!"
- echo. REM goto end
- echo.^)
- echo.REM FINE OUTER FOR
- echo.echo.
- echo.REM ERROR HANDLING
- echo.goto chiusura
- echo.:errExist
- echo.echo 临时目录%%dstdir%%已存在.在继续或更改批处理中的路径之前将其删除.
- echo.goto pulizia
- echo.:chiusura
- echo.:pulizia
- echo.cd..
- echo.rd /S /Q %%dstdir%%
- echo.goto end
- echo.:end
- ) > color.bat
- SetLocal EnableDelayedExpansion
-
- :LOAD
- if EXIST "%UserProFile%\Save.Txt" (
- echo.
- echo 发现存档^^!
- echo.
- echo 你想加载游戏吗?
- call color.bat [S]#0c 想 [N]#0c 不想
-
- choice /N /C:SN
-
- if errorlevel 2 (
- echo.
- echo 新的开始.
- pause >nul
-
- goto START
- )
- if errorlevel 1 (
- for /F "usebackq tokens=1-18 delims=," %%G in ("%UserProFile%\Save.Txt") do (
- set AMBIENTE=%%G
- set ATT=%%H
- set DIF=%%I
- set MAG=%%J
- set DIF_M=%%K
- set HP_MAX=%%L
- set HP=%%M
- set MAGIE=%%N
- set LV=%%O
- set EXP=%%P
- set END_COMBACT=%%Q
- set EQUIP_ARM=%%R
- set EQUIP_CORPO=%%S
- set EQUIP_ELM=%%T
- set NAME=%%U
- set SWT_LOC_A=%%V
- set GOLD=%%W
- set STORY=%%X
- set /a ST_VELENO=0
- set NAME_EN=
- set /a HP_LOSE=3
-
- set /a LOOP_L=0
-
- goto LOOP_ECHO_LOAD
- )
- )
- ) else (
- goto START
- )
-
- :SAVE
- set /a LOOP_S=0
-
- goto LOOP_ECHO_SAVE
-
- :LOOP_ECHO_LOAD
- if %LOOP_L% EQU 0 (
- cls
- echo.
- echo 正在加载 .
- set /a LOOP_L=%LOOP_L%+1
-
- choice /N /C:P /T 0 /D P
- goto LOOP_ECHO_LOAD
- )
-
- if %LOOP_L% EQU 1 (
- cls
- echo.
- echo 正在加载 . .
- set /a LOOP_L=%LOOP_L%+1
-
- choice /N /C:P /T 0 /D P
- goto LOOP_ECHO_LOAD
- )
-
- if %LOOP_L% EQU 2 (
- cls
- echo.
- echo 正在加载 . . .
- set /a LOOP_L=0
-
- choice /N /C:P /T 0 /D P
- if errorlevel 1 goto %AMBIENTE%
- )
-
- :LOOP_ECHO_SAVE
- if %LOOP_S% EQU 0 (
- cls
- echo.
- echo 存档中 .
- set /a LOOP_S=%LOOP_S%+1
- choice /N /C:P /T 0 /D P
-
- goto LOOP_ECHO_SAVE
- )
-
- if %LOOP_S% EQU 1 (
- cls
- echo.
- echo 存档中 . .
- set /a LOOP_S=%LOOP_S%+1
- choice /N /C:P /T 0 /D P
-
- goto LOOP_ECHO_SAVE
- )
-
- if %LOOP_S% EQU 2 (
- cls
- echo.
- echo 存档中 . . .
- set /a LOOP_S=0
-
- choice /N /C:P /T 0 /D P
- echo %AMBIENTE%,%ATT%,%DIF%,%MAG%,%DIF_M%,%HP_MAX%,%HP%,%MAGIE%,%LV%,%EXP%,%END_COMBACT%,%EQUIP_ARM%,%EQUIP_CORPO%,%EQUIP_ELM%,%NAME%,%SWT_LOC_A%,%GOLD%,%STORY% > "%UserProFile%\Save.Txt"
-
- goto %AMBIENTE%
- )
-
- :START
- set /a EQUIP_ARM=0
- :: 3= SPADA ATT +3
- :: 5= LANCIA ATT +5
- :: 7= PUGNALE ATT +7
- :: 2= ASTA +2 MAG
- :: 4= PISTOLA +4 MAG
- :: 8= LONGINUS +8 MAG
-
- set /a EQUIP_CORPO=0
- :: 1= MAGLIA DIF +1
- :: 3= GIUBOTTO DIF+3
- :: 8= CORAZZA DIF +8
-
- set /a EQUIP_ELM=0
- :: 2= CAPPELLO DIF_MAG +2
- :: 5= BASCO DIF_MAG +5
- :: 7= ELMO DIF_MAG +7
-
- set /a ATT=2
- set /a DIF=1
- set /a MAG=0
- set /a DIF_M=0
- set /a EXP=0
- set /a HP=30
- set /a HP_MAX=30
- set /a LV=1
-
- set /a ST_VELENO=0
- :: 1= AVVELENATO
-
- set /a HP_LOSE=3
- :: HP PERSI PER EFFETTO DEL VELENO
-
- set /a END_COMBACT=0
-
- set /a MAGIE=0
- :: FIRE=1
- :: ICE=2
- :: ENERGIA=3
- :: IDRO=4
- :: THUNDER=5
- :: ESNA=6
-
- set /a SWT_LOC_A=0
- :: VARIABILE PER I SOLDI TROVATI NEL MONDO
-
- set /a GOLD=0
- ::SOLDI DEL GIOCO
-
- set /a STORY=0
- ::VARIABILE DELLA STORIA
-
- set NAME_EN=
-
-
- cls
- echo.欢迎来到虚拟世界,这里使用了有史以来最好的图形引擎,你的大脑^^!
- pause >nul
-
- cls
-
- call color.bat 选择 [S]#0c 开始或选择 [N]#0c 退出
- choice /N /C:SN
-
- if errorlevel 2 goto END
- if errorlevel 1 goto BEGIN_GAME
-
- :BEGIN
- cls
- call color.bat 你的房子#0a
- echo.
- echo 你是离开房子还是在房间里踱步?
-
- call color.bat 选择 [A]#0c 离开或选择 [D]#0c 停留
- choice /N /C:AD
-
- if errorlevel 2 goto IN_HOME
- if errorlevel 1 goto OUT_HOME
-
- :BEGIN_GAME
- echo.
- set /p NAME=你的名字叫什么?
-
- if /i DEFINED NAME (
- echo.
- echo %NAME%你好, 你好,欢迎来到劳里的世界^^!
- echo 你准备好开始你的冒险了吗?
- call color.bat 按 [Enter键]#0c 开始。
- pause >nul
- ) else (
- cls
- echo 请输入您的姓名^^!
- pause >nul
- goto BEGIN_GAME
- )
-
- cls
- call color.bat 你的房子#0a
- echo.
- echo 嗯,刚刚醒来,马上就发现了一些奇怪的事情...
- echo 是啊...太安静了,有点不对劲...
- echo 走近前门想做点什么...
- echo 是离开房子还是在房间里踱步?
-
- call color.bat 选择 [A]#0c 离开或选择 [D]#0c 停留
- choice /N /C:AD
-
- if errorlevel 2 goto IN_HOME
- if errorlevel 1 goto OUT_HOME
-
- :OUT_HOME
- cls
- call color.bat 屋外#0a
- echo.
- echo 我听不到任何噪音...
- echo 我步行时注意到朋友的房子...
- echo 门开着...
- echo 决定进去还是继续?
-
- call color.bat 选择 [A]#0c 进入或选择 [D]#0c 继续或 [X]#0c 返回
- choice /N /C:ADX
-
- if errorlevel 3 goto BEGIN
- if errorlevel 2 goto STREET
- if errorlevel 1 goto FRIEND_HOUSE
-
- :IN_HOME
- cls
- call color.bat 走廊#0a
- echo.
- echo 想去哪个房间?
-
- call color.bat 选择 [A]#0c 去厨房 [D]#0c 去卧室 [G]#0c 去浴室 [J]#0c 客厅
- choice /N /C:ADGJ
-
- if errorlevel 4 goto SALA
- if errorlevel 3 goto BAGNO
- if errorlevel 2 goto CAMERA
复制代码
|