Ich mache gerade ein Spiel, das ein überzeugendes System enthält. Ich hatte den ganzen Code für eines der Systeme eingerichtet, aber dann habe ich 2 weitere eingerichtet, und es fing an, mir einen Fehler zu geben, der sagte: "(Nummer) wurde zu diesem Zeitpunkt nicht erwartet". wenn ich 2 für die zweite Wahl und 3 für die dritte Wahl einsetze.Zu dieser Zeit kam ich unerwartet.
Der Code ist wie folgt.
@echo off
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a"
)
set name=Quantum
cls
color 0a
Echo King Redwood: So 2000?
pause >nul
echo.
call :colorText 09 "1. 2500"
echo.
call :colorText 0e "2. 3000"
echo.
call :colorText 0c "3. 4000"
echo.
echo 4. 2000
echo.
set /p "purs=Enter:"
if /i %purs% == 1 (
goto CheckB)
if /i %purs% == 2 (
goto CheckY)
if /i %purs% == 3 (
goto CheckR)
if /i %purs% == 4 (
goto Convo)
:CheckB
set bleu=%random:~-2,1%
if %bleu% GTR 10 (
goto CheckB)
if %bleu% LSS 0 (
goto CheckB)
set /a num = 3
set /a reward = 2500
goto Res
:CheckY
set Yel=%random:~-2,1%
if %Yel% GTR 10 (
goto CheckY)
if %Yel% LSS 0 (
goto CheckY)
set /a num = 5
set reward = 3000
goto Res
:CheckR
set red=%random:~-2,1%
if %red% GTR 10 (
goto CheckB)
if %red% LSS 0 (
goto CheckB)
set /a num = 7
set /a reward = 4000
goto Res
:Convo
set /a reward = 2000
Echo %name%: I think that is a reasonable price.
Echo King Redwood: Very well.
Echo King Redwood: We will now take you to make sure you are
echo ready.
pause >nul
:Res
if %bleu% GEQ %num% goto Succeed
if NOT %bleu% GEQ %num% goto Fail
:Succeed
Echo %name%: I think that the struggles for such a long trip will be more then that
Echo %name%: How about %reward%?
Echo King Redwod: OK %reward% will work.
pause >nul
goto end
:Fail
Echo %name%: I think that you can give me %reward%.
Echo %name%: You know, for the struggles that there will be along the way.
echo If 2000 isn't good enough for you, I'll just have someone else do it.
pause >nul
:end
exit
:colorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1i
Ich habe eine Bearbeitung gemacht, ich habe die Set-Nummer geändert und die Belohnung unter: CheckR und Y gesetzt, um stattdessen/a einzustellen. aber das gibt mir immer noch einen Fehler. – QuantumPrimus
Kommentieren Sie @echo off, um zu sehen, was tatsächlich passiert; Doppelklicken Sie nicht auf die Stapeldatei, sondern führen Sie sie aus, indem Sie ein Eingabeaufforderungsfenster öffnen und den Pfad eingeben ... – aschipfl
Zum Beispiel ist '% bleu%' eine leere Zeichenfolge unter ': res', weil' bleu' nicht ist durchgehen entweder ': CheckY' oder': CheckR' oder ': Convo' (diese Liste ist möglicherweise unvollständig). Daher führt 'if% bleu% GEQ% num% goto Succeed' zu etwas wie 'Wenn GEQ 3 zu Succeed' ... Scheinbar falsche Syntax ... – JosefZ