2017-09-16 53 views
0

我一直在運行Windows 7的桌面上運行RPG風格的遊戲 我一直在使用批處理來製作此遊戲。我一直在負數的問題...
如果你的/敵人的健康輸入負數,你變得無敵。 LSS,LEQ,GTR,GEQ似乎不起作用。 這就是我如何確定你是死了還是怪物;批處理文件負數無法通過「IF」命令檢測

If "%phealth%" LSS "0" goto :dead.       
If "mhealth%" LSS "0" goto :Mdead 

如果我使用GTR或GEQ第一攻擊將殺死怪物無論是什麼,如果我使用LSS或等效聲級它沒有工作,我打算如何吧。 一切都是通過隨機生成的;

Set /a "mhealth=%random% %%mlvl%-1+9 

球員健康水平是不是隨機的,而是可以改變 有沒有被我忽略的任何解決方案或錯誤。大多數網頁也沒有幫助。我需要它,所以如果健康進入負面你/怪物死亡

謝謝!

+0

請正確格式化您的代碼。而且這些不會將引號添加到''%phealth%「'和'」0「'中。 – SteveFest

+0

如果您碰巧閱讀了「IF」命令的幫助,您可能已經看到了這一點。 **您也可以使用上面的數字比較: 'IF%ERRORLEVEL%LEQ 1 goto okay' **。你有沒有看到任何引號? – Squashman

+1

你看起來像你應該做一個餘數計算。在使用批處理文件時,需要將字符百分比加倍,「Set/A mhealth =%random%%%%mlvl% - 1 + 9」(不需要在%mlvl%變量)_。我已經包含了空間來幫助你看到對手之間的分離,而不會對他們造成傷害。 – Compo

回答

3

如果將操作數用引號引起來,則按字母順序執行比較。引號的原因是(經常)保護操作數不爲空 - 但也可以使用if [not] defined ...來完成。對於數字進行比較,請刪除引號。