GOKOPs
forumowicz
Dołączył: 27 Mar 2013 Posty: 15
Przeczytał: 0 tematów
Ostrzeżeń: 0/3 Skąd: Toruń, Polska, Europa, Ziemia, Słońce, Droga Mleczna
|
Wysłany: Pią 21:50, 05 Kwi 2013 Temat postu: kolejny problem z batchem |
|
|
Witam. Wklejałem już na forum fragment kodu tej gry, ale napiszę to w nowym temacie, żeby nie było zamieszania. (Bo problem jest inny, aczkolwiek podobny)
Otóż kiedy folder z plikami tej "gry" nie jest jeszcze stworzony, gra włącza się bez problemów, ale gdy zostanie on już stworzony, ładuje się pierwsza połowa menu, (bo ze względu na opcje wyglądu menu musiałem je podzielić)
a następnie wywala błąd "W tym momencie goto było nieoczekiwane". Zaczęło się to, kiedy poprawiłem kod zmiany ramki w menu w opcjach, co niby na ładowanie się menu nie powinno mieć wpływu.
No więc najpierw daję tu kod od początku programu do końca ładowania menu:
Kod: |
@echo off
title Wojna gatunk˘w
color 07
if exist "C:/Wojna_Gatonkow/" goto clor
goto crtf
:crtf
md "c:/Wojna_Gatonkow"
if exist "C:/Wojna_Gatonkow/color.txt" goto butt
goto clor
:clor
(echo kolor=07) >"c:/Wojna_Gatonkow/color.txt"
if exist "C:/Wojna_Gatonkow/button.txt" goto fram
goto butt
:butt
(echo buttons=1) > "c:/Wojna_Gatonkow/button.txt"
if exist "C:/Wojna_Gatonkow/frame.txt" goto strt
goto fram
:fram
(echo frames=1) > "C:/Wojna_Gatonkow/frame.txt"
goto strt
:strt
set "sciezka_kolor=c:/Wojna_Gatonkow/color.txt"
set "sciezka_buttons=c:/Wojna_Gatonkow/button.txt"
set "sciezka_frames=c:/Wojna_Gatonkow/frame.txt"
for /f %%a in (%sciezka_kolor%) do set %%a
for /f %%a in (%sciezka_frames%) do set %%a
for /f %%a in (%sciezka_buttons%) do set %%a
:main_menu
color %kolor%
if %frames%== 1 goto frame1
if %frames%== 2 goto frame2
if %frames%== 3 goto frame3
if %frames%== 4 goto frame4
if %frames%== 5 goto frame5
if %frames%== 6 goto frame6
if %frames%== 7 goto frame7
if %frames%== 8 goto frame8
if %frames%== 9 goto frame9
if %frames%== 10 goto frame10
:frame1
cls
echo ################################################
echo Witaj w grze "Wojna gatunkow"
echo ˝eby wybiera† opcje, naleľy wpisa†
echo numer i wcisnĄ† enter.
echo ################################################
echo.
goto menubuttons
:frame2
cls
echo @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
echo Witaj w grze "Wojna gatunkow"
echo ˝eby wybiera† opcje, naleľy wpisa†
echo numer i wcisnĄ† enter.
echo @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
echo.
goto menubuttons
:frame4
cls
echo $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
echo Witaj w grze "Wojna gatunkow"
echo ˝eby wybiera† opcje, naleľy wpisa†
echo numer i wcisnĄ† enter.
echo $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
echo.
goto menubuttons
:frame5
cls
echo ************************************************
echo Witaj w grze "Wojna gatunkow"
echo ˝eby wybiera† opcje, naleľy wpisa†
echo numer i wcisnĄ† enter.
echo ************************************************
echo.
goto menubuttons
:frame6
cls
echo ::::::::::::::::::::::::::::::::::::::::::::::::
echo Witaj w grze "Wojna gatunkow"
echo Pewnie juľ to wiesz, ale ľeby wybiera†
echo opcje, naleľy wpisa† numer i wcisnĄ† enter.
echo ::::::::::::::::::::::::::::::::::::::::::::::::
echo.
goto menubuttons
:frame7
cls
echo ++++++++++++++++++++++++++++++++++++++++++++++++
echo Witaj w grze "Wojna gatunkow"
echo ˝eby wybiera† opcje, naleľy wpisa†
echo numer i wcisnĄ† enter.
echo ++++++++++++++++++++++++++++++++++++++++++++++++
echo.
goto menubuttons
:frame8
cls
echo ================================================
echo Witaj w grze "Wojna gatunkow"
echo ˝eby wybiera† opcje, naleľy wpisa†
echo numer i wcisnĄ† enter.
echo ================================================
echo.
goto menubuttons
:frame9
cls
echo ------------------------------------------------
echo Witaj w grze "Wojna gatunkow"
echo ˝eby wybiera† opcje, naleľy wpisa†
echo numer i wcisnĄ† enter.
echo ------------------------------------------------
echo.
goto menubuttons
:frame10
cls
echo ________________________________________________
echo Witaj w grze "Wojna gatunkow"
echo ˝eby wybiera† opcje, naleľy wpisa†
echo numer i wcisnĄ† enter.
echo ________________________________________________
echo.
goto menubuttons
:menubuttons
if %buttons%== 1 goto button1
if %buttons%== 2 goto button2
if %buttons%== 3 goto button3
if %buttons%== 4 goto button4
if %buttons%== 5 goto button5
if %buttons%== 6 goto button6
if %buttons%== 7 goto button7
if %buttons%== 8 goto button8
:button1
echo \1--Rozpocznij gr--1/
echo \2------Opcje-----2/
echo \3--Strona Gry--3/
echo \4----Info----4/
echo \5---Pomoc--5/
echo \6-Wyjcie-6/
goto menuset
:button2
echo ł1ł Rozpocznij gr ł1ł
echo ł2ł Opcje ł2ł
echo ł3ł Strona Gry ł3ł
echo ł4ł Info ł4ł
echo ł5ł Pomoc ł5ł
echo ł6ł Wyjscie ł6ł
goto menuset
:button3
echo (1 Rozpocznij gr 1)
echo (2 Opcje 2)
echo (3 Strona Gry 3)
echo (4 Info 4)
echo (5 Pomoc 5)
echo (6 Wyjscie 6)
goto menuset
:button4
echo {1 Rozpocznij gr 1}
echo {2 Opcje 2}
echo {3 Strona Gry 3}
echo {4 Info 4}
echo {5 Pomoc 5}
echo {6 Wyjscie 6}
goto menuset
:button5
echo X1-Rozpocznij gr-1X
echo X2-Opcje-2X
echo X3 Strona Gry 3X
echo X4-Info-4X
echo X5-Pomoc-5X
echo X6-Wyjscie-6X
goto menuset
:button6
echo 1---Rozpocznij gr---1
echo 2---Opcje---2
echo 3-Strona Gry-3
echo 4---Info---4
echo 5---Pomoc---5
echo 6---Wyjscie---6
goto menuset
:button7
echo #1# Rozpocznij gr #1#
echo #2# Opcje #2#
echo #3# Strona Gry #3#
echo #4# Info #4#
echo #5# Pomoc #5#
echo #6# Wyjscie #6#
goto menuset
:button8
echo 1 - Rozpocznij gr
echo 2 - Opcje
echo 3 - Strona Gry
echo 4 - Info
echo 5 - Pomoc
echo 6 - Wyjscie
goto menuset
:menuset
set /p "opc=>"
if %opc%== 1 goto game
if %opc%== 2 goto options
if %opc%== 3 goto page
if %opc%== 4 goto info
if %opc%== 5 goto help
if %opc%== 6 exit
goto error |
A to jest kod zmiany ramki w menu, który zmodyfikowałem:
Kod: |
:opc-menu-frame
cls
echo Wybierz ramk z listy:
echo.
echo 1 - ########################## (domyslnie)
echo 2 - @@@@@@@@@@@@@@@@@@@@@@@@@@
echo 3 - $$$$$$$$$$$$$$$$$$$$$$$$$$
echo 4 - **************************
echo 5 - ::::::::::::::::::::::::::
echo 6 - ++++++++++++++++++++++++++
echo 7 - ==========================
echo 8 - --------------------------
echo 9 - __________________________
echo.
echo 10 - powr˘t
set /p "frame=>"
if %frame%== 1 goto framestyle1
if %frame%== 2 goto framestyle2
if %frame%== 3 goto framestyle4
if %frame%== 4 goto framestyle5
if %frame%== 5 goto framestyle6
if %frame%== 6 goto framestyle7
if %frame%== 7 goto framestyle8
if %frame%== 8 goto framestyle9
if %frame%== 9 goto framestyle10
if %frame%== 10 goto opc-menu
:framestyle1
echo frames=1 >"c:/Wojna_Gatonkow/frame.txt"
set "sciezka_frames=c:\Wojna_Gatonkow\frame.txt"
for /f %%a in (%sciezka_frames%) do set %%a
goto frameOK
:framestyle2
echo frames=2 >"c:/Wojna_Gatonkow/frame.txt"
set "sciezka_frames=c:\Wojna_Gatonkow\frame.txt"
for /f %%a in (%sciezka_frames%) do set %%a
goto frameOK
:framestyle3
echo frames=3 >"c:/Wojna_Gatonkow/frame.txt"
set "sciezka_frames=c:\Wojna_Gatonkow\frame.txt"
for /f %%a in (%sciezka_frames%) do set %%a
goto frameOK
:framestyle4
echo frames=4 >"c:/Wojna_Gatonkow/frame.txt"
set "sciezka_frames=c:\Wojna_Gatonkow\frame.txt"
for /f %%a in (%sciezka_frames%) do set %%a
goto frameOK
:framestyle5
echo frames=5 >"c:/Wojna_Gatonkow/frame.txt"
set "sciezka_frames=c:\Wojna_Gatonkow\frame.txt"
for /f %%a in (%sciezka_frames%) do set %%a
goto frameOK
:framestyle6
echo frames=6 >"c:/Wojna_Gatonkow/frame.txt"
set "sciezka_frames=c:\Wojna_Gatonkow\frame.txt"
for /f %%a in (%sciezka_frames%) do set %%a
goto frameOK
:framestyle7
echo frames=7 >"c:/Wojna_Gatonkow/frame.txt"
set "sciezka_frames=c:\Wojna_Gatonkow\frame.txt"
for /f %%a in (%sciezka_frames%) do set %%a
goto frameOK
:framestyle8
echo frames=8 >"c:/Wojna_Gatonkow/frame.txt"
set "sciezka_frames=c:\Wojna_Gatonkow\frame.txt"
for /f %%a in (%sciezka_frames%) do set %%a
goto frameOK
:framestyle9
echo frames=9 >"c:/Wojna_Gatonkow/frame.txt"
set "sciezka_frames=c:\Wojna_Gatonkow\frame.txt"
for /f %%a in (%sciezka_frames%) do set %%a
goto frameOK
:framestyle10
echo frames=10 >"c:/Wojna_Gatonkow/frame.txt"
set "sciezka_frames=c:\Wojna_Gatonkow\frame.txt"
for /f %%a in (%sciezka_frames%) do set %%a
goto frameOK
:frameOK
cls
echo Ramka zostala zmieniona.
ping localhost -n 2 >nul
goto main_menu |
Najpierw daję ścieżkę do pliku w zmienną, a dopiero potem odczytuję przez for /f %%a in (ścieżka) do set %%a, ponieważ inaczej nie chciało mi działać.
|
|