Как установить переменную в пакетной программе в первую строку текстового файла и перезаписать эту строку после пакетного файла, имеющего обновленную переменную - PullRequest
0 голосов
/ 06 мая 2020

В основном я хочу сделать так, чтобы когда игрок в моих играх делал имя, он сохранял переменную имени в текстовый файл. Затем в текстовом файле, при загрузке файла сохранения, игра будет смотреть на текстовый файл, помеченный, например, "name.txt", и внутри будет содержать имя игрока, из которого будет извлечено каким-либо образом, чтобы новое сохранение могло быть загруженным, но для других переменных игрока, таких как богатство или местоположение, это переменные динамического c, которые, возможно, придется часто менять, поэтому я предлагал, как бы мне постоянно обновлять этот файл «weath.txt» и / или файл "location.txt", например, и перезаписать предыдущие текстовые строки, содержащие там предыдущее местоположение. Что касается того, как я бы установил переменную любого заданного игрока c, такую ​​как его имя, я использовал этот патч кода безрезультатно:

    @echo off
    :start
    set /p name=">"
    (@echo off %name%)>"C:\Users\%username%\Desktop\gamedir\name.txt"
    SET name=

    for /f "delims=" %%i in (name.txt) do call :setname %%i
    echo final name = %name%
    goto exit

    :Setname
    Set name=%name% %1%
    goto :eof

    :exit
    pause
rem showing result which appears to do nothing 
    echo %name%

Что касается извлечения этой переменной при загрузке игры , Я совершенно не знаю, как это сделать. Буду признателен за любую помощь!

1 Ответ

0 голосов
/ 06 мая 2020

Достаточно простой способ справиться с сохранением и загрузкой - это сохранить данные игры в bat-файле, а затем вызвать его, когда придет время загрузки.

В приведенном ниже примере подпрограммы перед любой переменной, которая должна быть сохранена, ставится префикс Save. чтобы его можно было вывести с помощью команды set внутри a for l oop, чтобы сохранить только нужные переменные.

:Save
REM refresh the save file
    >"%name%.bat" Echo @Echo off
REM output all requied values prefixed with Save. using the Set Command to allow easy loading
    For /F "UsebackQ Tokens=* Delims=" %%S in (`"Set Save."`) Do >>"%name%.bat" Echo Set "%%~S"
REM Finalise the save with a return to the calling script
    >>"%name%.bat" Echo Goto :EOF
Exit /B

:Load
REM Calls the save file which contains commands to set all relevant variables
    CALL "%name%.bat"
Exit /B

Вы можете легко поддерживать несколько символов, сохраняя их в их собственной папке и используя от DIR до отображать их и метод ввода для их выбора.

`DIR "%TEMP%\GameName\characters" /B /P`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...