2015-09-08 46 views
0

我想用batbox做一個小遊戲。我希望它顯示你使用的類,但它沒有奏效。它顯示「Class:ECHO關閉」。我不知道什麼是錯的。繼承人我使用的代碼:批/爲什麼不能正常工作?

:charectarselect 
cd gamedata 
color 0f 
cls 
batbox /g 0 0 
echo Select class: 
echo. 
echo %mage% 
echo %worrior% 
set /p classes=Class: 

echo %classes%>pclass.gm 
goto login 

:login 
color 0f 
cd gamedata 
set /p pclass=<pclass.gm 
set /p user=<username.gm 
set /p pass=<password.gm 
if "%pclass%" == "1" echo Mage>pclass.gm 
cls 
title Login 
echo ======================LOGIN====================== 
set /p login=Username : 

if %login% == %user% goto password 
goto login 
:password 
cls 
echo ======================LOGIN====================== 
set /p passw=Password : 

if %passw% == %pass% goto game 
goto password 

:game 
cls 
batbox /c 0xc9 /d "Health: %health%" 
batbox /g 11 0 /c 0x9c /d "Strength: %strength%" 
batbox /g 23 0 /c 0x9a /d "Class: %pclass%" 
pause >nul 

我希望你們能幫助我!

+1

你的意思是,它的顯示「ECHO處於關閉狀態」,它要求上課前?這是我看到這個信息的唯一地方;它來自未定義的'%mage%'和'%worrior%'[sic]變量。一旦輸入課程名稱,':name'部分的變量顯示將正確顯示。 – SomethingDark

+0

https://gyazo.com/54fb45340015b418fb33822a5e31e9fe這就是我得到@SomethingDark – minefedtgamer

+0

_Wait第二..._你上課時輸入'1',不是嗎? – SomethingDark

回答

0

該問題是由於您輸入1而造成的。具體而言,這是由行echo %classes%>pclass.gm

當您在字符選擇中輸入1時,它將該命令擴展爲echo 1>pclass.gm。不幸的是,1>用於將輸出從STDOUT重定向到一個文件,因此批處理將其解釋爲將echo的輸出發送到pclass.gm的命令。本身,echo顯示回顯是打開還是關閉。

您可以通過添加括號回聲線解決這個問題: (echo %classes%)>pclass.gm

+0

感謝您的幫助:3 @SomethingDark – minefedtgamer

+0

@minefedtgamer - 高興地幫助。如果我的答案解決了您的問題,請點擊我答案旁邊的複選標記。 – SomethingDark

+0

我可以問你一些事嗎? ; - ; @SomethingDark好吧,所以它的工作,現在我想要一個怪物損害,但是當我鍵入「設置健康 - =%怪物%」你能幫助嗎?對不起。 – minefedtgamer